图像反转适用于增强嵌入于图像暗色区域的白色或灰色细节,物别是当黑色面积占主导地位时。
#include"cv.h"
#include"highgui.h"
//#include <iostream>
int main(int argc,char **argv)
{
//图像反转
IplImage *pImg;
IplImage *pImag2;
if(argc == 3 && (pImg = cvLoadImage(argv[1],-1))!= 0)
{
pImag2 = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1);
uchar *data;
data = (uchar *)pImg->imageData;
int img_width = pImg->width;//image width
int width_step = pImg->widthStep;//行字节数
int img_height = pImg->height;//image height
int img_nChannel = pImg->nChannels;
for (int i = 0; i <img_height - 1; i++)
{
for (int j = 0; j <img_width - 1; j++)
{
for (int k = 0; k < img_nChannel; k++)
{
data[i * width_step + j * img_nChannel + k] = 255 - data[i * width_step + j * img_nChannel + k];
}
}
}
cvSaveImage(argv[2],pImg);
cvNamedWindow("src", 1);//create window
cvNamedWindow("canny", 1);//create window
cvShowImage("src", pImg);
cvShowImage("canny", pImag2);
cvWaitKey(0);
cvDestroyWindow("src");
cvDestroyWindow("canny");
cvReleaseImage(&pImg);
cvReleaseImage(&pImag2);
return 0;
}
return -1;
}