赞
踩
刚好手头上有一张证件照,尝试把蓝色底换成红色或白色底,网上搜的资料不多,且大多数都是基于opencv1写的,于是尝试写了下opencv2的。主要步骤为:
1.把RGB图像转换到HSV空间
2.取背景的一小块20*20,计算蓝色背景的平均色调和饱和度
3.设置阈值,取出蓝色背景替换为红色背景
4.把HSV图像转换会RGB空间
5.滤波器去除边缘效应
具体代码为:
- // change_color.cpp : 定义控制台应用程序的入口点。
- //证件照从蓝色底换成红色底
-
- #include "stdafx.h"
- #include <iostream>
- #include <opencv2\core\core.hpp>
- #include <opencv2\highgui\highgui.hpp>
- #include <opencv2\imgproc\imgproc.hpp>
-
- using namespace cv;
- using namespace std;
-
- int _tmain(int argc, _TCHAR* argv[])
- {
- char *origin="Original";
- char *window=
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。