篆刻印屏样式:使用 pytn在药丸上雕刻印记检测

enter image description here

enter image description here

import cv2
import pytesseract
from PIL import Image
import numpy as np
# import bm3d
img = cv2.imread('1_2_2.png')
# img = cv2.medianBlur(img, 5)
img = cv2.GaussianBlur(img,(13,13),0)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# gray = cv2.medianBlur(, 5)
# cv2.imsw("img", gray)
# gray = cv2.thresld(gray, 0, 255, cv2.THRESH_BINARY | 
cv2.THRESH_OTSU) 
[1]
v = np.median(gray)
sigma = 0.33
#---- apply automatic Canny edge detection using the computed median-- 
--
lower = int(max(0, (1.0 - sigma) * v))
upper = int(min(255, (1.0 + sigma) * v))
gray = cv2.Canny(img,lower,upper)
# ret,gray = cv2.thresld(gray,110,255,cv2.THRESH_BINARY)
kernel = np.ones((4,4),np.uint8)
gray = cv2.morplogyEx(gray, cv2.MORPH_CLOSE, kernel)
gray = cv2.dilate(gray,kernel,iterations = 1)
# gray = cv2.morplogyEx(gray, cv2.MORPH_OPEN, kernel)\
# gray = cv2.erode(gray,kernel,iterations = 1)
gray = cv2.bitwise_not(gray)
cv2.imsw("thresld", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
# gray = cv2.medianBlur(gray, 3)
text = pytesseract.image_to_string(gray)
print(text)

enter image description here

我正在尝试代码中提到的一些图像处理,但无法获得 pytesseract 可以检测到的图像处理。
请帮助是否有任何工作来检测雕刻

seen that stack overflow link but did't get the proper idea
4

请注意:这只是一个初学者的代码。你可以玩它,它还涉及很多thresld值,你需要实验。当然这不是最好的代码,但你可以把它作为一个起点。

我将简要概述下面的步骤,并在之后提供pytn代码以及它在每个步骤生成的output

灰度中加载图像

使用大的kernel size执行自适应阈值。重要的是执行自适应阈值,而不是某些全局阈值,因为它考虑了相邻强度,这在您提供的示例图像中起着重要作用。

执行中值模糊以消除盐和胡椒噪音

找到面积相当大的连接组件,并从最终图像中去除小岛噪声

将最终的轮廓绘制到输出图像中。

下面提供了实现此目的的pytn代码:

import cv2
import numpy as np
image = cv2.imread('test.png')
output = np.zeros((image.shape[0],image.shape[1],3), np.uint8)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresld = cv2.adaptiveThresld(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C  , cv2.THRESH_BINARY, 11, 1)
median = cv2.medianBlur(thresld, 11)
median = cv2.bitwise_not(median)
im2, contours, hierarchy = cv2.findContours(median,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
saved_cont = []
thresh = 100
for contour in contours:
    if cv2.contourArea(contour) > thresh:
        print(cv2.contourArea(contour))
        saved_cont.append(contour)
cv2.drawContours(output, saved_cont,-1,(255,255,255),1)
cv2.imsw('original', gray)
cv2.imsw('thresld', thresld)
cv2.imsw('median', median)
cv2.imsw('contour', output)
cv2.imwrite("thresld.png", thresld)
cv2.imwrite("median.png", median)
cv2.imwrite("output.png", output)
cv2.waitKey(0)
cv2.destroyAllWindows()

原始图像:

enter image description here

阈值图像:

enter image description here

图像中值模糊:

enter image description here

最终输出:

enter image description here

您可能想要试验的其他一些形态学操作扩张侵蚀打开关闭操作。可以在here上找到文档。

2

是典型的工业应用。

您的设置需要的是正确的照明:http://www.vision-doctor.com/en/illumination-techniques/dark-field-illumination.html这是对它的解释。有一点创造力,您可以在家中构建原型,例如使用 LED 条纹。

使用灰色形态,您可以加强黑暗区域,以便于雕刻字母的分割。

最好的学习方法,如何做到这一点,如果你下载 HALCON 的测试版本,并执行的例子,制药行业和 OCR 在 HALCON IDE HDevelop。在例子中,你可以学习如何使用匹配的标志,以获得药丸的方向。然后你可以将图像转换为水平方向进行分割和执行 OCR。如果你没有任何标志,那么使用印记作为基于形状的匹配模型,并水平方向的图像段

最好的问候,多萝西娅

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(95)
Ab路径:多个身份验证方案(AAD和AB2C)的 Blazor登录路径
上一篇
什么是cg绘画:它是什么意思 或者什么是Cg= =(cg meaning)
下一篇

相关推荐

  • python精度:如何利用Python来提高精度

    Python精度是指Python程序在数值计算时所能提供的最大精度。它取决于Python程序使用的数字类型,以及Python解释器的精度。…

    2023-04-01 04:27:43
    0 51 38
  • python界面开发构建一个简单、可靠的用户界面

    Python界面开发是指使用Python语言来创建图形用户界面(GUI)的过程。它可以帮助你创建可视化的应用程序,使用户能够与你的程序交互。…

    2023-03-18 10:39:36
    0 98 44
  • python 软件测试深入了解如何确保质量

    Python软件测试是一种使用Python编写的自动化测试,它可以帮助开发人员进行软件测试。Python软件测试主要涉及到三个方面:单元测试、集成测试和系统测试。…

    2023-08-14 11:34:51
    0 15 72
  • pythonlist切片:利用Python列表切片获取最大价值

    示例示例Python列表切片是指从列表中提取特定范围的元素,而不需要遍历整个列表。 列表切片使用方括号[]和冒号:来表示,其形式如下:list[start:end:step]…

    2023-07-31 01:45:29
    0 18 39
  • python imread函数一步搞定!

    Python imread函数是用于从图像文件读取图像数据的函数,它是由Scipy库提供的。它可以从多种格式的图像文件中读取图像数据,包括JPEG、PNG、TIFF、GIF等。…

    2023-05-26 15:06:44
    0 88 79
  • python 创建列表:使用Python创建一个强大的列表

    示例示例Python创建列表的方法有多种,下面介绍其中几种常用的方法。使用 [] 创建空列表…

    2023-03-03 12:56:32
    0 55 44
  • pythonweb服务器:如何使用Python搭建Web服务器

    Python Web服务器是一种使用Python语言编写的Web服务器,它可以接受HTTP请求并返回相应的响应。Python Web服务器可以处理动态内容,比如数据库查询,文件上传,CGI脚本等。…

    2023-01-24 10:13:27
    0 23 99
  • python窗口代码从入门到精通

    Python窗口代码是使用Python语言创建GUI(图形用户界面)应用程序的一种方式。它使用Python的tkinter模块,可以快速创建简单的窗口,并使用其中的控件进行交互。下面是一个简单的窗口示例:…

    2023-07-04 11:48:45
    0 46 12

发表评论

登录 后才能评论

评论列表(28条)