//线性滤波就是将两张图片以一定比例加到一起
g(x)=s*f(x)+(1-s)f2(x)+gamma
//其中s是比例因子,控制新生成的图像像素值在0-255之间。f(x)和f2(x)是两张图片
//使用APIaddWeighted(f(x),s,f2(x),1-s,gamma,g(x));
int main(int argc, char** argv)
{
Mat src, dst;
src = imread("C:\\Users\\Administrator\\Pictures\\Saved Pictures\\timg6ZAGKYHR.jpg");
if (!src.data)
{
printf("could not find..");
return -1;
}
namedWindow("src demo", WINDOW_AUTOSIZE);
imshow("src demo", src);
dst = src.clone();
for (int i = 0; i < src.rows; i++)
{
for (int j = 0; j < src.cols; j++)
{
int b = src.at<Vec3b>(i, j)[0];
int g = src.at<Vec3b>(i, j)[1];
int r = src.at<Vec3b>(i, j)[2];
dst.at<Vec3b>(i, j)[0] = 255-b;
dst.at<Vec3b>(i, j)[1] = 255-g;
dst.at<Vec3b>(i, j)[2] = 255-r;
}
}
Mat addimg;
addWeighted(src, 0.8, dst, 0.2, 0.0, addimg);
imshow("dst demo", dst);
imshow("final demo", addimg);
waitKey(0);
}