怎么访问图像中每个像素的值

 我来答
37978136
2016-04-25 · TA获得超过1.1万个赞
知道大有可为答主
回答量:2564
采纳率:100%
帮助的人:1191万
展开全部
#include"cv.h"
#include"highgui.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
IplImage *myimage = cvLoadImage("D:\\w.jpg",1);//通过图片路径载入图片,参数1是彩色图片,0灰度图片
cvShowImage("w",myimage);
cvWaitKey(2000);//显示的时间2000ms
//像素遍历操作
for(int y=0;y<myimage->height;y++)
{
for(int x=0;x<myimage->width;x++)
{
((uchar*)(myimage ->imageData + myimage->widthStep*y))[x*3]=0;//(0-255) 蓝色通道像素
((uchar*)(myimage ->imageData + myimage->widthStep*y))[x*3+1]=111;//(0-255) 绿色通道像素
((uchar*)(myimage ->imageData + myimage->widthStep*y))[x*3+2]=111;//(0-255) 红色通道像素
}
}//
cvShowImage("w",myimage);
cvWaitKey();
}//修改RGB三个通道的值会使得图片像素值变化,你们可以试试只修改一个通道的值,而其他两个通道值不变,体会下效果
//彩色图片的像素点值得读取就是把三个通道的值取出来,灰度图的读取就是把每个像素点的单通道值取出来
这是将现有的图片像素值重新赋值,你要读出来就不赋值,直接printf三个通道的值就行了,不知道楼主懂了没?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式