为openCV和Python中的形态学操作创建冒号作为内核/结构化分隔符

问题描述 投票:1回答:1

我需要处理许多图片以进行图像处理。

enter image description here

基本上,我想在图像中找到:-character的位置。检查完图像后,我发现这是所有图像唯一的共同点。由于所有图像都是从视频流中拍摄的,因此在视频流中的所有数字都会/可以在某些时候改变。

查看openCV和此openCV的文档,我写了以下内容:

post

将产生以下输出:

import cv2 import numpy as np def skeletonize(img): size = np.size(img) skel = np.zeros(img.shape,np.uint8) ret,img = cv2.threshold(img,127,255,0) element = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3)) done = False while( not done): eroded = cv2.erode(img,element) temp = cv2.dilate(eroded,element) temp = cv2.subtract(img,temp) skel = cv2.bitwise_or(skel,temp) img = eroded.copy() zeros = size - cv2.countNonZero(img) if zeros==size: done = True return skel

接下来,我写我基于结肠的结构化部分:

enter image description here

如何测量结构化部分中两个img = cv2.imread('chi_int.JPG') skel = skeletonize(img) kernel = np.array([[0,0,0], [0,0,0], [0,1,0], [0,0,0], [0,0,0], [0,1,0], [0,0,0], [0,0,0]], dtype=np.uint8) erosion = cv2.erode(skel,kernel,iterations = 1 之间需要用zeros填充的行数?通过使用ones函数,如果我的结构化分隔符具有正确的大小,则应该有1 pixel。我该如何解决我的脚本?非常感谢帮助!

skeletonize

注意:我不想使用Tesseract OCR,因为它太慢了

python opencart
1个回答
0
投票

除非找到字体大小,否则除非找到字体,否则没有任何神奇的方法来知道冒号大小。因此,您将不得不尝试所有可能的选择。但是它似乎不是有效和可靠的。我建议以下内容。

  1. 在阈值确定后立即通过enter image description here查找连接的组件。
  2. 仅保留小而圆形的(小findContours,小contourArea)。
  3. 计算他们的中心。
  4. 搜索在x方向上具有较小距离而在y方向上具有合理距离的对。通过按x坐标对点数组进行排序,可以非常有效地完成此操作。
© www.soinside.com 2019 - 2024. All rights reserved.