转自:http://blog.csdn.net/hxgqh/archive/2011/02/23/6202001.aspx
获得像素点的值便可以更加灵活的进行图像处理,在OpenCV里可以通过cvGet2D()和cvSet2D()两个函数加上一个CvScalar结构体做到。
OpenCV中,CvScalar结构为:
typedef struct CvScalar
{
double val[4];
}
CvScalar;
4个double型变量,算法处理时不至于被强制类型转换而降低精度了。
再来看读写函数的定义:
cvGet2D 获得某个点的值, idx0=hight 行值, idx1=width 列值。
CVAPI(CvScalar) cvGet2D( const CvArr* arr, int idx0, int idx1 );
cvSet2D 给某个点赋值。
CVAPI(void) cvSet2D( CvArr* arr, int idx0, int idx1, CvScalar value );
有上可见,cvGet2D的返回类型和cvSet2D中value的类型都是CvScalar,这样定义一个CvScalar变量再调用函数就OK了。
OpenCV中像素点读写例子:
int main(int argc, char **argv)
{
IplImage *img = cvLoadImage(argv[1], 1);
CvScalar pixel;
for (int i = 0; i < img->height; ++i)
{
for (int j = 0; j < img->width; ++j)
{
//获得像素的RGB值并显示, 注意内存中存储顺序是BGR
pixel = cvGet2D(img, i, j);
printf("B=%f,G=%f,R=%f/t", pixel.val[0], pixel.val[1], pixel.val[2]);
//修改各点的值
pixel.val[0] = 0;
pixel.val[1] = 0;
pixel.val[2] = 0;
cvSet2D(img, i, j, pixel);
}
}
cvNamedWindow("image", 1);
cvShowImage("image", img);
cvWaitKey(0);
cvDestroyWindow("image");
cvReleaseImage(&img);
return 0;
}
分享到:
相关推荐
利用opencv对图像进行简单处理,遍历图片的所有像素点,逐个进行处理,并显示处理结果!
OpenCV获取与设置像素点的值的几个方法
SWT C++ OPENCV 像素点文字检测 分享一下 看看和基于区域的区别有多大
opencv访问像素点代码
编程环境:VS+OPENCV ,对于初学者学习基于opencv的图像处理非常有帮助,此节点主要是遍历像素点的一些方法。
基于opencv像素点匹配的数字识别,适合刚入门学习OpenCV的小白,使用了很多opencv的常用api,完成的简单案例,可帮助初学者快速掌握opencv
opencv相机截取点的三通道像素值,并存为txt文件。文件可更新。
首次接触图像处理,通过次来记录自己的学习记录,随着了解的越多,可能就会有不同的理解,到时再来补充。通过对毛星云大大例程的操作,指针、迭代、动态地址访问之间最大的区别就是,时间的消耗会越来越大
Opencv像素处理与访问 对于图像处理来说,如果我们了解处理图像的具体算法,那么我们就可以通过直接操作图片的像素点来实现这些算法。所以本文就总结一下Opencv像素处理和访问的一些知识。 文章目录Opencv像素处理...
使用opencv获得图像中每一点的像素值 可以对图像中的每一点像素值进行单独的操作
基于opencv的亚像素级角点检测,程序通过调用opencv函数实现角点检测,有详细的注释
opencv2.4.3中访问图像的像素,有at函数法,指针法,迭代器法,帮助初学者入门,供大家参考。
主要为大家详细介绍了Python OpenCV处理图像之图像像素点操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
opencv 求单像素边缘 参数包括原始二值化图像,目标边缘结果图像
批量显示图像的像素点的坐标,通过鼠标点击并保存像素点的坐标位置。
范例5-1-4改变影像的每1个像素调整影像明亮度 112 范例5-2-1全彩图转灰阶图 113 范例5-3-1影像颜色相反,使用Bitwise_xor 114 范例5-3-2影像颜色相反,使用subtract 115 范例5-3-3影像颜色相反,使用Bitwise_not 116 ...
根据Sobel原理,可以完全明确的是:每一个像素点的梯度计算都不依赖于其他的像素点!这就是实现多核并行处理边缘检测的关键。利用这个关键的特性,我们可以让多个核同时去计算多个像素点的梯度值,进而提高Sobel边缘...
对一副图像进行预处理,然后提取轮廓,再将轮廓进行像素点抽取。
这是一个用鼠标获得图像像素点RGB和HSV值的程序,基于OpenCV的