美文网首页
高效遍历像素

高效遍历像素

作者: coolTigers | 来源:发表于2020-04-27 00:39 被阅读0次

高效遍历像素注意事项:
1、at方法在需要随机访问像素的时候使用,绝不要在扫描图像时使用;
2、使用较短的循环和多条语句通常比使用较长的循环和单条语句的运行效率高;
3、针对连续图像生成一个循环而不是行列二重循环;
4、优先使用位运算;
5、对于可以预先计算的数值,要避免在循环中重复计算,提前算好;
6、使用多线程OpenMP、TBB、多线程

void colorReduce(Mat image, int div)
{
#ifndef BIT_OP
    // 行数
    int nl = image.rows;
    // 每行的元素数量
    int nc = image.cols * image.channels();
    int halfDiv = div >> 1;
    for (int i = 0; i < nl; i++) {
        // 取得i行的地址
        uchar* data = image.ptr<uchar>(i);
        for (int j = 0; j < nc; j++) {
            data[j] = data[j] / div * div + halfDiv;
        }
    }
    return;
#endif // !BIT_OP
    int n1 = image.rows;
    int nc = image.cols * image.channels();
    if (image.isContinuous()) {
        nc = nc * n1;
        n1 = 1;
    }

    int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0) + 0.5);
    uchar mask = 0xFF << n;
    uchar div2 = div >> 1;
    for (int i = 0; i < n1; i++) {
        uchar* data = image.ptr<uchar>(i);
        for (int j = 0; j < nc; ++j) {
            *data &= mask;
            *data++ += div2;
        }
    }
}

相关文章

  • 高效遍历像素

    高效遍历像素注意事项:1、at方法在需要随机访问像素的时候使用,绝不要在扫描图像时使用;2、使用较短的循环和多条语...

  • 图片像素高效遍历方案

    背景 在进行图片语义分割模型训练时,需要对图片进行通道转换,我在进行图片掩码处理时,发现按照行列方式对图片数据进行...

  • 像素遍历

    当处理图片的像素值时,如变化i=(i/10)*10。没有必要对每一个像素值进行这个操作。可以创建一个表,如果是灰度...

  • 【OPENCV】cv::Mat像素遍历方法比较

    像素级别遍历是我们在图像任务中经常遇到的问题,在实时的图像处理中,能够高效的访问像素数据是很重要的。OpenCV中...

  • iOS遍历像素

    我们的需求是获取图片的透明区域 - (UIImage *)crateImage:(UIImage *)image{...

  • iOS 遍历图片像素

    像素是位图的基本组成单位,是图片上的一个个小方块,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置...

  • 004 图像像素的读写操作

    本节内容:图像像素操作:遍历与访问 C++ 在C++中访问OpenCV Mat对象每个像素点的像素值有两种方式: ...

  • 极验滑动验证码的识别

    同时获取两张图片。设定一个对比阈值,然后遍历两张图片,找出相同位置像素 RGB 差距超过此阈值的像素点,那么此像素...

  • OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法

    搬运自本人 CSDN 博客:《OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法》注:本文中大量 Lat...

  • 如何扫描图像、利用查找表和计时

    如何提高图片遍历速度 如果矩阵存储的是单通道像素,遍历速度会很快,但是如果是多通道,速度就会慢 颜色空间缩减 将现...

网友评论

      本文标题:高效遍历像素

      本文链接:https://www.haomeiwen.com/subject/mecewhtx.html