.Net AI学习笔记系列第三章OpenCVSharp实操——图片去水印

.Net AI学习笔记系列

第三章 OpenCVSharp实操——图片去水印



前言

本文主要介绍用掩码模板+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函数修复原始图像中的缺失区域,从而达到去除图片水印的目的。不过每次去除水印都要需要根据具体情况调整缺失区域的位置和大小,以获得最佳的修复效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brooth123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值