首页 > 其他 > 详细

证件照抠图

时间:2020-04-05 23:38:56      阅读:114      评论:0      收藏:0      [点我收藏+]

最近有点事,这两天都没有更新。出去玩耍还是要注意安全啊。今天正好有点空,我做了一下证件照抠图。本次基于的方法是传统方法,没有使用深度学习之类的。
我采用了两种方法抠图。

寻找边缘,然后位运算。

下面是实验效果:
原图:
技术分享图片
边缘:
技术分享图片
抠图结果:
技术分享图片

以下是我的实现代码

	Mat source = imread("D:/images/IDphoto1.jpg",-1);
	if (source.empty()) {
		cout << "can`t open this ph" << endl;
	}
	namedWindow("source_demo",WINDOW_FREERATIO);
	imshow("source_demo",source);

	Mat gray;
	cvtColor(source, gray, COLOR_BGR2GRAY);
	threshold(gray,gray,0,255,THRESH_BINARY|THRESH_OTSU);
	vector<vector<Point>> contours;
	findContours(gray,contours,RETR_EXTERNAL,CHAIN_APPROX_SIMPLE,Point());
	Mat canvas = Mat::zeros(source.size(),CV_8UC3);
	canvas = Scalar::all(255);
	/*
	for (size_t t = 0; t < contours.size(); t++) 
	{
		drawContours(canvas,contours,t,Scalar(0),2,8);
	}
	*/
	drawContours(canvas, contours, 8, Scalar(0,0,0), -1, 8);

	namedWindow("draw",WINDOW_FREERATIO);
	bitwise_not(canvas, canvas);
	imshow("draw", canvas);
	bitwise_not(canvas, canvas);
	vector<Mat> split_canvas;
	split(canvas,split_canvas);
	Mat cdst;
	bitwise_and(source, source, cdst, split_canvas[0]);
	namedWindow("cdst", WINDOW_FREERATIO);
	imshow("cdst",cdst);

第二种方法 我采用从色彩空间RGB 转到 HSV 色彩空间处理

关于HSV色彩空间这里有篇详细的讲解:https://www.cnblogs.com/wangyblzu/p/5710715.html
技术分享图片
主要用到以上这个表格,和inRange函数
mask区域:
技术分享图片
抠图结果:
技术分享图片

这种方式明显对静态图片处理效果不是很明显。
但是这种方式可以处理实时视频流,这里面黑色的斑点是不是就像某些主播打开视频背景虚化时,卡的时候,有些黑色部分。
这种方式在还可以优化一下。
我的实现代码

	Mat hsv, gaus;
	GaussianBlur(source, gaus, Size(3, 3), 0);
	cvtColor(gaus, hsv, COLOR_BGR2HSV);
	namedWindow("hsv_demo", WINDOW_FREERATIO);
	imshow("hsv_demo", hsv);
	Mat mask;
	inRange(hsv,Scalar(100,43,46),Scalar(124,255,255),mask);
	namedWindow("mask", WINDOW_FREERATIO);
	bitwise_not(mask,mask);
	imshow("mask", mask);
	Mat dst;
	bitwise_and(source,source,dst,mask);
	namedWindow("dst", WINDOW_FREERATIO);
	imshow("dst", dst)

本节完整代码地址:https://github.com/cyssmile/openCV_learning_notes/blob/master/opencv_test/opencv_043/opencv_043.cpp

证件照抠图

原文:https://www.cnblogs.com/cyssmile/p/12639369.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!