图像像素操作全解析
1. 像素访问方法及性能分析
在图像处理中,访问和操作像素是基础且重要的操作。我们实现了一个使用 at 方法进行像素访问的函数版本,其核心代码如下:
for (int j=0; j<nl; j++) {
for (int i=0; i<nc; i++) {
image.at<cv::Vec3b>(j,i)[0]=
image.at<cv::Vec3b>(j,i)[0]/div*div + div/2;
image.at<cv::Vec3b>(j,i)[1]=
image.at<cv::Vec3b>(j,i)[1]/div*div + div/2;
image.at<cv::Vec3b>(j,i)[2]=
image.at<cv::Vec3b>(j,i)[2]/div*div + div/2;
} // end of line
}
该实现的运行时间较慢,分别为 0.925 ms、0.580 ms 和 1.128 ms。因此, at 方法仅适用于随机访问图像像素,而不适合在扫描图像时使用。
在编写循环时,有一些性能优化的技巧。通常,语句较少的短循环比单个语句的长循环执行效率更高,即使处理的元素总数相同。同样,如果需要对一个像素进行 N 种不同的计算,最好在一个循环中完成所有计算,而不
图像像素操作方法全解析
超级会员免费看
订阅专栏 解锁全文
9476

被折叠的 条评论
为什么被折叠?



