Net第三章 OpenCVSharp实操——图片去水印
文章目录
- .Net AI学习笔记系列
- 前言
- 一、OpenCVSharp实操——图片去水印
- 二、步骤
- 1.开发工具
- 2.引入库
- 3.示例代码
- 4.运行效果
- 总结
前言
本文主要介绍用掩码模板+inpaint函数实现去除图片中的水印。
一、OpenCVSharp实操——图片去水印
示例展示了一步一步去掉一张图片的水印。
二、步骤
1.开发工具
VS2019+.net 4.8+OpenCvSharp4
2.引入库
Install-Package OpenCvSharp4
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;
using OpenCvSharp.Extensions;
3.示例代码
代码如下(示例):
首先,准备一张带水印的图
第一步,读取上述图片
Mat src = Cv2.ImRead(this.imgPath);
第二步,创建掩码图片
// 创建一个与原始图像大小相同的全黑图像作为掩码
Mat mask = new Mat(src.Rows, src.Cols, MatType.CV_8UC1, Scalar.Black);
//在其上定义水印区域
int maskWidth = 110;
int maxkHeight = 55;
Rect watermarkRect = new Rect(src.Width- maskWidth, src.Height- maxkHeight, maskWidth, maxkHeight);
// 在掩码中绘制一个白色矩形,表示需要保留的区域
Cv2.Rectangle(mask, watermarkRect, Scalar.White, -1);
第三步,使用 inpaint 函数修复水印区域,达到去除水印的目的
Cv2.Inpaint(src, mask, dst, 3, InpaintMethod.Telea);4.运行效果
总结
掩码+inpaint 函数去水印的方法 相对来说比较麻烦,首先需要定位到水印在图片上的区域,再使用Cv2.Inpaint函数修复原始图像中的缺失区域,从而达到去除图片水印的目的。不过每次去除水印都要需要根据具体情况调整缺失区域的位置和大小,以获得最佳的修复效果。
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
