C# OpenCv 证件照换底色
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OPenCVDemo
{
class Program
{
static void Main(string[] args)
{
//读取照片
Mat img = Cv2.ImRead("2.png");
Cv2.ImShow("原图.png", img);
//图像缩放
//Mat mg = new Mat();
//Cv2.Resize(img, mg, new Size(200,200), 0.5, 0.5);
//Cv2.ImShow("mg.png", mg);
//图片转换为灰度图
Mat hsv = new Mat();
Cv2.CvtColor(img, hsv, ColorConversionCodes.BGR2HSV);
Cv2.ImShow("hsv.png", hsv);
//var channels = Cv2.Split(hsv);
//Cv2.ImShow("B", channels[0]);
//Cv2.ImShow("G", channels[1]);
//Cv2.ImShow("R", channels[2]);
//图片的二值化处理
Mat mask = new Mat();
Scalar lower_blue = new Scalar(90, 70, 70);
Scalar upper_blue = new Scalar(110, 255, 255);
Cv2.InRange(hsv, lower_blue, upper_blue, mask);
Cv2.ImShow("mask.png", mask);
//腐蚀膨胀
Mat erode = new Mat();
Cv2.Erode(mask, erode, 1);
Mat dilate = new Mat();
Cv2.Erode(erode, dilate, 1);
Cv2.ImShow("dilate.png", dilate);
for (int r = 0; r < img.Rows; r++)
{
for (int c = 0; c < img.Cols; c++)
{
if (dilate.At<byte>(r, c) == 255)
{
Vec3b vec3B = dilate.At<Vec3b>(r, c);
//此处替换颜色,为BGR通道,不是RGB通道
vec3B.Item0 = 255;
vec3B.Item1 = 255;
vec3B.Item2 = 255;
img.Set<Vec3b>(r, c, vec3B);
}
}
}
Cv2.ImShow("白底.png", img);
//窗口等待的命令,0表示无限等待
Cv2.WaitKey(0);
}
}
}

C# OpenCv 证件照换底色的更多相关文章
- 教你用OpenCV 和 Python给证件照换底色(蓝底 <->红底->白底)
在我们的生活中常常要用到各种底色要求的证件电子照,红底.蓝底.或者白底,而假如你手上只有一种底色的证件照,你又不想再去拍又不会PS怎么办?今天教你们用OpenCV和Python给你的证件照换底色. P ...
- c#实现超实用的<证件照换底色>小工具
1前言 我们在工作和生活中经常要填写一些个人资料,这时候往往需要放证件照上去,但是有时候人家要求是红底或白底,但是偏偏不巧的是你以前照了张蓝底的.这时候你想换个底色,于是在百度上一搜“证件照换 ...
- 20行代码教你用python给证件照换底色
1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流.本文只是为了告诉大家:python其实有很多黑科技(牛逼的库),我们既可以用python处理工作中的一些事儿,同时我们也 ...
- opencv —— floodFill 漫水填充法 实现证件照换背景
漫水填充:floodFill 函数 简单来说,漫水填充就是自动选中与种子像素相连的区域,利用指定颜色进行区域颜色填充.Windows 画图工具中的油漆桶功能和 Photoshop 的魔法棒选择工具,都 ...
- opencv::证件照背景替换
证件照背景替换 K-Means 背景融合 – 高斯模糊 遮罩层生成 #include <opencv2/opencv.hpp> #include <iostream> usin ...
- PS证件照换背景
综述 博主原创内容. 在PS里,对于抠图,比较有技术含量的便是抠头发丝了,下面为大家带来一个比较详细的抠头发丝的教程. 素材准备 在这里我们用这张图片作为抠图素材,下面让我们一步步来演示抠图的过程,并 ...
- Python给照片换底色(蓝底换红底)
环境要求 Python3 numpy函数库 opencv库 安装 下载适应版本的numpy函数库,我电脑是WIN10 64位,安装的函数库是 numpy-1.13.1+mkl-cp36-cp36m-w ...
- PS 证件照换颜色
1.打开要修改的图片,然后先Ctrl+J备份一份 2.点击魔法棒,点击要换颜色的地方,如衣服,之后会出现虚线,如果自动选择的不全,可以按住Shift键自行选择区域 3.然后Shift+Fn+F5(由于 ...
- (生活)Photoshop入门(不定时更新)
我可能是想找个工作以外的事情做一下. 目标:我要自学网PhotoShop商业修图. 笔记: .图层 .1总结: 1.1.1图层就好像画画的一张纸,但是每一层又互不影响. 1.1.2图层蒙版(覆盖一层玻 ...
- Opencv博文收藏列表
opencv识别二维码:https://blog.csdn.net/jia20003/article/details/77348170 opencv视频:http://www.opencv.org.c ...
随机推荐
- OCR 02: Tesseract-OCR
Catalog OCR 01: EasyOCR OCR 02: Tesseract-OCR OCR 03: PaddleOCR Project Host And Brief Official Site ...
- 51单片机封装库HML_FwLib_STC89/STC11
HML_FwLib_STC89/11 项目地址 https://github.com/MCU-ZHISHAN-IoT/HML_FwLib_STC89 https://github.com/MCU-ZH ...
- Laravel入坑指南(6)——Redis缓存
写在前面: Redis是常用nosql服务之一,在Redis官网上最新的稳定版本是6.0.6.这里不讨论Redis服务如何编译,如何使用.在Redis官网有很健全的文档. 这里要讨论的是无论在cent ...
- Python之正则表达式匹配电话号码和邮箱
代码 #! python3 # phoneAndEmail.py - Finds phone numbers and email addresses on Clipboard import pyper ...
- 我的小程序之旅三:微信小程序登录流程设计
登录时序图 获取小程序的AppID和AppSecret 一.微信获取登录用户的openId 1.wx.login() { "code": "192038921jkjKHW ...
- FFmpeg开发笔记(七):ffmpeg解码音频保存为PCM并使用软件播放
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Qt开发技术:QCharts(四)QChart面积图介绍、Demo以及代码详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- 【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)?
问题描述 App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)? 问题回答 App Service在Windows的环境中 ...
- 【Azure Developer】PHP网站使用AAD授权登录的参考示例
问题描述 如果有个PHP网站,需要使用AAD授权登录,有没有PHP代码实例 可供参考呢? 参考代码 参考一篇博文(Single sign-on with Azure AD in PHP),学习使用SS ...
- 解密Spring中的Bean实例化:推断构造方法(上)
在Spring中,一个bean需要通过实例化来获取一个对象,而实例化的过程涉及到构造方法的调用.本文将主要探讨简单的构造推断和实例化过程,让我们首先深入了解实例化的步骤. 实例化源码 protecte ...