OpenCV - imwrite保存透明PNG

https://blog.csdn.net/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;

}

猜你喜欢

转载自blog.csdn.net/greless/article/details/106003926