【图像处理】-019 补色

【图像处理】-019 补色

1 补色

  在学习灰度图像处理的时候,有一种操作可以形成照片底片的效果。这种操作将灰度值设置为255与该灰度值的差。

  在彩色图像处理中,也有类似的操作,通过将彩色图像的色调设置为在彩色环上直接相对的另一端的值,来进行补色。

2 OpenCV实现

在实现的过程中,主要有两种思路,一种是取图像的H分量,进行“反转”之后生成结果图像,另一种是和灰度图一样处理,对RGB三个通道分别进行反转,即用255-RGB,得到结果图像。

#include "../include/importOpenCV.h"
#include "../include/baseOps.h"
#include "../include/opencv400/opencv2/core.hpp"
#include <iostream>
#include <algorithm>

int main()
{
	//将工作目录设置到EXE所在的目录。
	SetCurrentDirectoryToExePath();

	cv::Mat src = cv::imread("../images/5.jpg");
	cv::imshow("原图", src);

	cv::Mat output;
	src.copyTo(output);
	if (src.channels() == 3)
	{
		cv::Mat hsvImg;
		cv::cvtColor(src, hsvImg, cv::COLOR_BGR2HSV);
		std::vector<cv::Mat> hsv;
		cv::split(hsvImg, hsv);
		hsv[0] =( cv::Scalar::all(180) - hsv[0]);
		cv::merge(hsv, output);
		cv::imshow("补色HSV", output);

		output = cv::Scalar::all(255) - src;
		cv::imshow("补色RGB", output);

	}
	else
	{
		output = cv::Scalar::all(255) - src;
		cv::imshow("补色", output);
	}

	cv::waitKey();
	return 0;
}

3 效果图

在这里插入图片描述从结果图中可以看出,取H进行补色的结果更贴近定义。例如图中女孩的红色衣服,补色应该是黄色,而RGB补色结果中颜色更靠近蓝色。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值