Halcon转OpenCV实例 您所在的位置:网站首页 消除签字笔迹的方法 Halcon转OpenCV实例

Halcon转OpenCV实例

2024-07-17 05:14| 来源: 网络整理| 查看: 265

导读

本文主要介绍一个去除纸张中颜色笔迹/墨迹的实例,并将Halcon实现转为OpenCV。

实例来源

实例来源于51Halcon论坛的讨论贴:

https://www.51halcon.com/forum.php?mod=viewthread&tid=4766

图片

Halcon实现

参考回帖内容,将代码整理如下:

read_image (Image, './test.jpg')get_image_size (Image, Width, Height)decompose3 (Image, ImageR, ImageG, ImageB)trans_from_rgb (ImageR, ImageG, ImageB, ImageY, ImageI, ImageQ, 'yiq')threshold (ImageQ, Regions, 132, 255) dilation_rectangle1 (Regions, RegionDilation, 25, 15)inpainting_texture (Image, RegionDilation, InpaintedImage, 5, 20, 0, 'none', 0)

图片

图片

如上图所示,可以较好的去除图中红色和蓝色的笔迹。

OpenCV实现

分析实现方法与思路:

[1] 将原图从BGR颜色空间转为YIQ颜色空间;

[2] 分离Q通道图像对其做二值化处理;

[3] 矩形核做膨胀操作,将笔迹区域连接

[4] 将膨胀后的图像作为mask,传给inpaint函数,通过图像修复来去除笔迹。

实现代码(Python-OpenCV):

#公众号:OpenCV与Halcon视觉import cv2import numpy as np img = cv2.imread('test.jpg')cv2.imshow('src',img) img_q = np.zeros((img.shape[0],img.shape[1],1),np.float32) for i in range(0,img.shape[0]): for j in range(0,img.shape[1]): B = img[i,j,0] G = img[i,j,1] R = img[i,j,2] img_q[i,j] = 0.214*R - 0.522*G + 0.309*B cv2.normalize(img_q, img_q, 0, 255, cv2.NORM_MINMAX, -1) imgQ = cv2.convertScaleAbs(img_q)cv2.imshow('imgQ',imgQ) ret, thresImg= cv2.threshold(imgQ, 165, 255, cv2.THRESH_BINARY)cv2.imshow('thresh',thresImg) k1=np.ones((20,30), np.uint8)#指定膨胀核大小thresImg = cv2.dilate(thresImg, k1, iterations=1)cv2.imshow('dilation', thresImg) result = cv2.inpaint(img,thresImg,3,cv2.INPAINT_NS)cv2.imshow('result', result) cv2.waitKey(0)cv2.destroyAllWindows()

逐步效果演示

原图:src

图片

Q通道转8位显示:imgQ

图片

二值化效果:thresImg

图片

膨胀效果:dilation

图片

inpaint修复效果:result

图片

结尾语

[1] 提取笔迹的方法有很多种,本文使用的是YIQ颜色空间的Q通道图像(直接对单个通道阈值处理较简单),大家也可以使用其他颜色空间提取红色和蓝色即可(可能需要使用inRange函数在三个通道处理);

[2] RGB颜色空间与YIQ颜色空间的转换:

① 网上流行的转换公式:

图片

② Halcon算子帮助文档中的转换公式:

图片

二者略有差异,本文使用的是Halcon帮助文档中的转换方法,直接计算得到Q通道图像。

完整代码(Python C++实现)与素材将发布在知识星球中,有问题可以留言或在星球中提问。

相关文章连接:

Halcon缺陷检测实例转OpenCV实现(一)

Halcon缺陷检测实例转OpenCV实现(二)

Halcon缺陷检测实例转OpenCV实现(三)

Halcon缺陷检测实例转OpenCV实现(四)

Halcon缺陷检测实例转OpenCV实现(五) 混合颜色药片缺陷检测

Halcon缺陷检测实例转OpenCV实现(六) 瓶口缺陷检测

Halcon转OpenCV实例--复杂背景下缺陷检测(附源码)

更多视觉图像处理相关内容,请长按关注:OpenCV与Halcon视觉。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有