https://blog.youkuaiyun.com/litdaguang/article/details/45438297
在OpenCV里,正常是读取图像和写入图像默认都是忽略透明通道的,如果想要读取原图像中的透明通道,则在使用imread()函数时,后面的参数要使用CV_LOAD_IMAGE_UNCHANGED参数.
int main()
{
Mat src = imread("C:\\透明.png", CV_LOAD_IMAGE_UNCHANGED);
circle(src, Point(src.cols / 2, src.rows / 2), 100, Scalar(0, 255, 0));
vector<int>compression_params;
compression_params.push_back(IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9); // 最佳质量
imshow("src", src);
imwrite("C:\\透明1.png", src, compression_params);
waitKey(0);
return 0;
}
本文介绍如何在OpenCV中正确读取包含透明通道的PNG图像,并使用Circle函数绘制绿色圆圈。通过使用CV_LOAD_IMAGE_UNCHANGED参数,确保图像的透明度信息得以保留。此外,还演示了如何设置压缩参数以高质量保存图像。
6250

被折叠的 条评论
为什么被折叠?



