CV_IMAGE_ELEM读取某点的像素
2014-11-05 14:46
204 查看
本文转载自:http://blog.csdn.net/haozivv/article/details/7174630
可以使用opencv定义的宏来提取象素值
假设灰度图像image,存取其i行j列的象素可以这样:CV_IMAGE_ELEM(image, uchar,y, x)
如果是彩色图像就是
CV_IMAGE_ELEM(image, uchar,y, 3*x)
CV_IMAGE_ELEM(image, uchar,y, 3*x+1)
CV_IMAGE_ELEM(image, uchar,y, 3*x+2)
CV_IMAGE_ELEM是一个宏,
#define CV_IMAGE_ELEM( image, elemtype, row, col ) \
(((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)])
#define CV_MAT_ELEM( mat, elemtype, row, col ) \
(*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype)))
呵呵,我一直把它当一个函数用,其实本质也没有什么区别的
但要想正确的得到图像的坐标为(x,y)点的像素值,是应该这样写CV_IMAGE_ELEM(Image, uchar, y, x)
要注意像素点的坐标xy和行列值的顺序是相反的(可以仔细思考为什么)
我刚开始一直写成CV_IMAGE_ELEM(Image, uchar, x, y),结果有时候就造成了访问image越界,从而报错,花了好长时间才捣鼓出来,
不过将IMAGE的数据按照原来的样子复制到mat中可以这么写:
CV_IMAGE_ELEM(pImage, uchar, i, j) = CV_MAT_ELEM(*mat, uchar, i, j)
不用改变顺序
总之,当应用这个宏是如果老报错,就试试换个顺序,或者检查访问的地址是否越界
本文转载自:http://blog.csdn.net/haozivv/article/details/7174630
可以使用opencv定义的宏来提取象素值
假设灰度图像image,存取其i行j列的象素可以这样:CV_IMAGE_ELEM(image, uchar,y, x)
如果是彩色图像就是
CV_IMAGE_ELEM(image, uchar,y, 3*x)
CV_IMAGE_ELEM(image, uchar,y, 3*x+1)
CV_IMAGE_ELEM(image, uchar,y, 3*x+2)
CV_IMAGE_ELEM是一个宏,
#define CV_IMAGE_ELEM( image, elemtype, row, col ) \
(((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)])
#define CV_MAT_ELEM( mat, elemtype, row, col ) \
(*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype)))
呵呵,我一直把它当一个函数用,其实本质也没有什么区别的
但要想正确的得到图像的坐标为(x,y)点的像素值,是应该这样写CV_IMAGE_ELEM(Image, uchar, y, x)
要注意像素点的坐标xy和行列值的顺序是相反的(可以仔细思考为什么)
我刚开始一直写成CV_IMAGE_ELEM(Image, uchar, x, y),结果有时候就造成了访问image越界,从而报错,花了好长时间才捣鼓出来,
不过将IMAGE的数据按照原来的样子复制到mat中可以这么写:
CV_IMAGE_ELEM(pImage, uchar, i, j) = CV_MAT_ELEM(*mat, uchar, i, j)
不用改变顺序
总之,当应用这个宏是如果老报错,就试试换个顺序,或者检查访问的地址是否越界
本文转载自:http://blog.csdn.net/haozivv/article/details/7174630
相关文章推荐
- CV_IMAGE_ELEM读取某点的像素
- Java图片读取之BufferedImage得到像素矩阵的两种方式
- 学习笔记——CV_IMAGE_ELEM
- OpenCV 中CV_IMAGE_ELEM 的使用
- OpenCV 中CV_IMAGE_ELEM 的使用
- CV_IMAGE_ELEM参数赋值时注意的问题
- CV_IMAGE_ELEM参数赋值时注意的问题
- CV_IMAGE_ELEM的作用以及用法 转载
- CV_IMAGE_ELEM
- 【OpenCV】cv::Mat对单个像素的访问和操作
- OpenCV的cvReleaseImage释放内存出错解决方法及Mat格式与IplImage格式相互转换
- vtkImageData转化为cv::Mat
- OpenCV-利用CV_MAT_ELEM宏和CV_MAT_ELEM_PTR宏存取CVMat数组元素
- 从 png图片读取raw image data
- cvReleaseImage()函数说明
- ASP.NET针对MSSQL里面的IMAGE字段的图片写入和读取操作代码
- 数据库中Image字段存储读取数据
- win10 uwp 读取保存WriteableBitmap 、BitmapImage
- image 读取 imagelist 里面图片
- Java读取并修改图片的像素值