openCV中访问图像像素的两种方法

来源:互联网 发布:淘宝客服名称 编辑:程序博客网 时间:2024/05/21 07:54

opencv中遍历像素以行为优先;
1,通过at()函数访问像素,代码如下,以灰度图像二值化为例:

Mat grayim=imread("lena.jpg");for(i=0;i<grayim.rows;++i) for(j=0;j<grayim.cols;++j) { ///图像二值化 if(grayim.at<uchar>(i,j)>100) grayim.at<uchar>(i,j)=255; else grayim.at<uchar>(i,j)=0; }

特点:代码易于阅读,但执行效率较低

2,通过指针访问像素,效率高,执行速度快

Mat grayim=imread("lena.jpg");for(i=0;i<grayim.rows;++i)///获取i行首元素地址uchar *p=grayim.ptr<uchar>(i) for(j=0;j<grayim.cols;++j) { ///图像二值化 if(p[j]>100)p[j]=255;///遍历i行的每一个像素 else p[j]=0; }
0 0
原创粉丝点击