我正在尝试显示此图像,因为我在目录中有此图像
但我用这段代码显示它
Mat img=imread("D:\\vig.png");
imshow("image",img);
waitKey();
imwrite("D:\\img.jpg",img);
同一图像显示如下
它有什么问题
答案 0 :(得分:7)
您的插图仅在alpha [4th]频道中,并且看起来也是倒置的(此处为不透明度值)。
(你的第一张照片似乎显示了一张带有白色图像(或背景)的正确alpha合成,可能来自photoshop等。)
Mat img=imread("vig.png",-1); // load 'as is', don't convert to bgr !!
Mat ch[4];
split(img,ch);
Mat im2 = ch[3]; // here's the vignette
// im2 = 255 - im2; // eventually cure the inversion
imshow("image",im2);
waitKey();
imwrite("img.jpg",im2);
再次注意,opencv不会进行任何alpha合成,你必须为此推出自己的公式。