image-processing - 查找图像中特定文本的坐标

标签 image-processing scikit-image

我正在尝试分割下图中的问题。我唯一的线索是带有粗体文本的数字,该数字由制表符空格缩进。我试图找到粗体编号(在本例中为 4,5,6),以便我可以获得它们的 x 和 y 并将图像分割成 3 个单独的问题。如何获得这些或如何解决这个问题。

我正在使用 scikit image 进行图像处理

enter image description here

最佳答案

您的图像看起来非常简单,因此可以通过扩张组件周围的轮廓检测来轻松分割文本。以下是详细步骤:

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)

输出图像: enter image description here

关于image-processing - 查找图像中特定文本的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151605/

相关文章:

c++ - cv::Mat 和深度像素之间的转换*

c# - 使用 C# 合并 2 个图像

javascript - 跟踪网站使用的库和脚本

python - Skimage regionprops 特征的(面积,euler_number)尺寸在 Python 中不正确

bounding-box - 如何在 Scikit-Image 中检测到的轮廓上绘制边界框?

python - 如何在Python中找到GLCM矩阵?

python - 如何使用 python 在我的图像上获得 "smart sharpen"效果?

android - OpenCV Android CameraBridgeViewBase 如何抓取帧、处理它并绘制它,而不会被帧抓取中断

python - scikit-image 安装失败

java - 如何在将图像从像素转换为毫米的同时缩放图像?