opencv4 c++ RGB颜色模式和CMYK颜色模式的相互转化

CMYK转RGB

    今天看了一位大佬rgb转cmyk颜色模式的文章。但是我发现网上没有什么cmyk转rgb颜色模式的代码。我就根据大佬的代码写了一个。思路就是把大佬的代码逆向转换一下。

rgb转cmyk此处在大佬文章中已经有了,此处不再赘述。

大佬文章链接:https://blog.csdn.net/guduruyu/article/details/73294485

//cmyk转rgb
void CMYK2BGR(cv::Mat src, cv::Mat &dst) {
	dst = cv::Mat::zeros(src.rows, src.cols, CV_8UC3);
	int pixel_num = src.rows * src.cols;
	for (int i = 0; i < pixel_num; i++) {
		uchar C = src.data[4 * i + 0];
		uchar M = src.data[4 * i + 1];
		uchar Y = src.data[4 * i + 2];
		uchar K = src.data[4 * i + 3];
		uchar c = 0;
		uchar m = 0;
		uchar y = 0;
		c = C * (255 - K) / 255 + K;
		m = M * (255 - K) / 255 + K;
		y = Y * (255 - K) / 255 + K;
		dst.data[3 * i + 0] = 255 - c;
		dst.data[3 * i + 1] = 255 - m;
		dst.data[3 * i + 2] = 255 - y;
	}
	cv::cvtColor(dst, dst, cv::COLOR_RGB2BGR);
}

你可能感兴趣的:(opencv)