您的位置:首页 > 其它

使用指针遍历图像

2015-03-25 23:49 162 查看
#include<cv.h>
#include<highgui.h>
void  colorReduce(cv::Mat &imag, int div = 64)
{
int n1 = imag.rows;
int nc = imag.cols*imag.channels();//每一行的像素数目(多通道的像素需要乘3)
for (int j = 0; j < n1; j++)//对每一行像素点进行操作
{
uchar  *data = imag.ptr<uchar>(j);//定位到每一行像素数组的首地址
for (int i = 0; i < nc; i++)
{
data[i] = data[i] / div*div + div / 2;//缩小像素点范围可以利用data[i]=0和data[i]=255求出最大像素值范围
}
}
}
int main()
{
cv::Mat image = cv::imread("C:\\Users\\dell\\Desktop\\2.jpg");
colorReduce(image);
cv::namedWindow("Image");
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: