图像操作-图像反色操作

来源:互联网 发布:塘厦cnc编程招聘 编辑:程序博客网 时间:2024/04/25 19:15

创建MFC工程,从文件中读入一幅图像,将之反色,然后显示原图片和反色之后的图片。

/******************************************************************************* 函数名称  : MakeMat函数描述  : 使用OpenCV进行图像操作输入参数  : N/A 输出参数  : N/A 返 回值    : N/A 作  者      :  hewenming 2012.11.14*******************************************************************************/ void MakeMat(){ IplImage* src = NULL; //加载图片至内存 src = cvLoadImage("750x500_1126054.bmp"); if (NULL == src) { AfxMessageBox(_T("图片加载失败!")); return; } //获取图片的一些属性 int height = src->height;                     // 图像高度 int width = src->width;                       // 图像宽度(像素为单位) int step = src->widthStep;                 // 相邻行的同列点之间的字节数 int channels = src->nChannels;         // 颜色通道数目 (1,2,3,4) uchar *data   = (uchar *)src->imageData; //创建标题名为“美女”的对话框 cvNamedWindow("美女"); cvMoveWindow("美女", 600, 250);  //创建名为“反色”的对话框 cvNamedWindow("反色"); cvShowImage("美女",src); //反色操作 for(int i=0;i != height; ++ i)  { for(int j=0;j != width; ++ j) { for(int k=0;k != channels; ++ k) {  data[i*step+j*channels+k]=255-data[i*step+j*channels+k];  } } }  //将图片显示到对话框中 cvShowImage("反色",src); cvWaitKey(0); //释放内存与对话框销毁 cvReleaseImage(&src); cvDestroyWindow("美女"); cvDestroyWindow("反色"); //退出 exit(0);}


如果想保存反色后的图像,添加以下代码即可:

 //保存反色后的图像 cvSaveImage("反色.bmp",src);


 

原创粉丝点击