我正在尝试细分下图中的问题。我唯一的线索是带有粗体文本的数字,该文本由制表符空格缩进。我试图找到粗体编号(在这种情况下为4,5,6),以便我可以得到它们的x和y并将图像分成3个单独的问题。如何获得这些或如何解决这个问题。
我正在使用scikit图像进行图像处理
答案 0 :(得分:0)
您的图像看起来非常简单,因此可以使用扩张组件周围的轮廓检测轻松分割文本。以下是详细步骤:
1)对图像进行二值化并将其反转以便于进行形态学操作。
2)仅使用长水平内核(20,1)形状的核心在水平方向上扩张图像。
3)找到所有连通分量的轮廓并得到它们的坐标。
4)使用这些边界框尺寸信息及其坐标来分割问题。
以下是相同的Python实现:
# Text segmentation
import cv2
import numpy as np
rgb = cv2.imread(r'D:\Image\st4.png')
small = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)
#threshold the image
_, bw = cv2.threshold(small, 0.0, 255.0, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
# get horizontal mask of large size since text are horizontal components
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (20, 1))
connected = cv2.morphologyEx(bw, cv2.MORPH_CLOSE, kernel)
# find all the contours
_, contours, hierarchy,=cv2.findContours(connected.copy(),cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
#Segment the text lines
for idx in range(len(contours)):
x, y, w, h = cv2.boundingRect(contours[idx])
cv2.rectangle(rgb, (x, y), (x+w-1, y+h-1), (0, 255, 0), 2)