Halcon 图像修复:多种方式去除水印

往期文章:

Halcon 缺陷检测:掩膜的妙用

Halcon 缺陷检测:基恩士的浓淡补正近似实现

Halcon 数据拟合:分别用最小二乘法和MLP回归拟合直线曲线


目录

 🚀🚀1.不同的水印

1.1 浅水印情况

1.2 深水印情况

前言:各位朋友们好,我是大脸猫。在图像修复领域中,Halcon提供了多种有效的工具和方法。通过对图像进行精确分析与处理,包括区域填充、纹理处理器等技术,Halcon能够有效清除不同类型的水印,从而恢复图像的原始清晰度和美观性。 


 🚀🚀1.不同的水印

1.1 浅水印情况

当从公众号或网站上下载文档时,往往会遇到带有发布者水印的情况。虽然市面上有许多专门用于去除水印的软件,但大多数都是收费的。相比之下,不如自己敲敲代码,处理掉这些水印。例如,在下图所示的情况下,通常这种水印和文字存在灰度差,所以我们需要从试卷上提取文字和图案,并去除掉试卷背面的水印。

原图

☘️☘️算法如下:

read_image (Image, '01.png')
rgb1_to_gray (Image, GrayImg)

*划ROI规避四周黑边
get_domain (GrayImg, Domain)
erosion_rectangle1 (Domain, Domain_ero, 300, 300)

*图像增强
mult_image (GrayImg, GrayImg, GrayImg_mult, 0.005, 0)
binary_threshold (GrayImg_mult, DarkRegion, 'smooth_histo', 'dark', UsedThreshold)
intersection (DarkRegion, Domain_ero, OcrRegion)

*重新绘制
gen_image_proto (GrayImg, ClearedImg, 255)
paint_region (OcrRegion, ClearedImg, ResultImg, 0, 'fill')
ResultImg

⭐⭐分析:

① mult_image (GrayImg, GrayImg, GrayImg_mult, 0.005, 0),对图像进行图像增强即两个同尺寸的图像相乘,再乘以0.005最后加0,这样使得暗的区域更暗,亮的区域更亮。(如下图对比图1)

② binary_threshold (GrayImg_mult, DarkRegion, 'smooth_histo', 'dark', UsedThreshold),对单通道图像自动确定一个全局阈值UsedThreshold,并返回暗区域。通常,这个算子在均匀背景上分割字符是非常有用的。(如下图DarkRegion)

paint_region (OcrRegion, ClearedImg, ResultImg, 0, 'fill'),以灰度值0,按照提取到的OcrRegion绘制在空白图像ClearedImg,返回图像即ResultImg。(如上图所示)

  

1.2 深水印情况

在Stack Overflow上发现了一个有趣的案例,涉及如何使用OpenCV去除图像中的水印。讨论的焦点是如何从下图中提取文字信息,同时要排除褐色圆圈以及浅色英文水印的影响。原图如下:

原图

☘️☘️算法如下:

read_image (Image, '01.jpg')

rgb1_to_gray (Image, GrayImg)

gray_dilation_shape (GrayImg, GrayImg_dil1, 8, 8, 'octagon')
gray_erosion_shape (GrayImg_dil1, GrayImg_ero1, 11, 11, 'octagon')
div_image (GrayImg, GrayImg_ero1, GrayImg_div1, 255, 30)
scale_image_range (GrayImg_div1, ResultImg, 210, 250)
ResultImg

⭐⭐分析: 

①  gray_dilation_shape (GrayImg, GrayImg_dil1, 8, 8, 'octagon'),对像素进行膨胀操作,即灰度值较大的区域膨胀,面积变大,即覆盖掉黑色字体。(如下图GrayImage_dil1)

② gray_erosion_shape (GrayImg_dil1, GrayImg_ero1, 11, 11, 'octagon'),对像素进行腐蚀操作,即灰度值较大的区域缩小,面积变小。(如下图GrayImage_ero1)

③ div_image (GrayImg, GrayImg_ero1, GrayImg_div1, 255, 30),用无字体的背景图GrayImage_ero1除去原始图并加上30个灰度值,就有效提取出字体图像。

④ scale_image_range (GrayImg_div1, ResultImg, 210, 250),把字体图像做灰度拉伸处理,使得图像更加贴近理想效果(如上图ResultImg)

               

GrayImage_dil1

GrayImage_ero1

如果考虑到商用途径,仅依靠Halcon来解决复杂场景下的图片水印问题是不现实的,通常还需要人工的干预以提高处理效果。然而,这并不意味着Halcon在此类任务中毫无用处。对于那些前后像素值对比明显、场景较为简单的水印,Halcon能够提供非常有效的解决方案。在这些情况下,利用Halcon的图像处理工具和技术,可以自动且高效地去除水印,恢复图像的原始状态。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心满意足的大脸猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值