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

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

2010-11-03 19:07 477 查看
#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;
}
上述的方法在效率方面不好,还有更快速的方法获取像素值:
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++;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: