您的位置:首页 > 运维架构

Opencv获取并改变图像的像素值

2014-11-06 20:03 337 查看
#include <iostream>

using namespace std;
#include "cv.h"

#include "highgui.h"
#pragma comment(lib,"cxcore.lib")

#pragma comment(lib,"cv.lib")

#pragma comment(lib,"ml.lib")

#pragma comment(lib,"cvaux.lib")

#pragma comment(lib,"highgui.lib")

#pragma comment(lib,"cvcam.lib")
int main(int argc, char* argv[])

{

IplImage *img = cvLoadImage("101.jpg",1);

CvScalar s;

cvNamedWindow("Image",1);
cvShowImage("Image",img);

for(int i = 0;i < img->height;i++)

{

for(int j = 0;j < img->width;j++)

{

s = cvGet2D(img,i,j); // get the (i,j) pixel value

s.val[0]=255;

s.val[1]=34;

s.val[2]=123;

cvSet2D(img,i,j,s);//set the (i,j) pixel value

}

}

cvShowImage("Image",img);

cvWaitKey(0); //等待按键

cvDestroyWindow( "Image" );//销毁窗口

//cvReleaseImage( &img ); //释放图像

return 0;

}
上述的方法在效率方面不好,还有更快速的方法获取像素值:

[cpp] view
plaincopy

IplImage img;

for (i = 0;i < img->height;i++)

{

for (j = 0;j < img->width;j++)

{

sum += ((uchar *)(img->imageData + img->widthStep * i))[j];//获取像素值

num++;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: