图像像素取反

1

void cvNot(

const CvArr* src,

CvArr* dst);

函数cvNot()会将src中的每一个元素的每一位取反,然后把结果赋给dst。因此,一个值为0x00的8位图像将被映射到0xff,而值为0x83的图像将被映射到0x7c。

#include <stdio.h>
#include <opencv2\opencv.hpp>
 
int main(int argc,char* argv[])
{
IplImage* src = cvLoadImage("1.jpg");
cvNot(src,src);
cvNamedWindow("cvNot",1);
cvShowImage("cvNot",src);
cvWaitKey(0);
cvReleaseImage(&src);
cvDestroyWindow("cvNot");
return 0;
}

2

cv::Mat pimg;

pimg = ~pimg;

3

Mat img_gray_inv = 255- img_gray;

4

for(int i=0;i != height; ++ i)
{
for(int j=0;j != width; ++ j)
{
for(int k=0;k != channels; ++ k)
{
data[istep+jchannels+k]=255-data[istep+jchannels+k];
}
}
}

 	5

for(int i=0;i<MatSize; ++ i)//MatSize图片的字节数
{
data[i]=~data[i];
}

     	6

如果是二值图
使用函数:bitwise_not()

猜你喜欢

转载自blog.csdn.net/qq_40584593/article/details/85196422