灰度化
注释写的很清楚。这里就不一一详细介绍
但是灰度化这里要注意一下就是
data1 = (uchar)(ColorImage->imageData[i *ColorImage->widthStep+j* 3 + 0]);//blue
这行代码里头,一开始不太理解为什么有widthStep
找了一些大家写的代码发现,只要是灰度化就一定会有这个代码的
现在大概理解了,这句话的意思就是
opencv iplimage格式直接访问内存读取像素
一定要高*widthStep
从网上找了一段话,虽然目前不太理解但是记录一下、
看了一些博客,总结一下就是
width表示图像的每行像素数,
widthStep表示存储一行像素需要的字节数,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。
如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。
这个图像的一行需要4个字节,只使用前3个,最后一个空着。
也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。
【注】:不同数据类型长度的图像,widthStep也不相同;
widthStep的值的计算有两种情况:
①当(width*3)%4=0,这时width*3=widthStep;
②当(width*