在opencv python图像上查找word中每个字符的中心坐标

2024-09-19 23:42:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在图像上有一个单词,单词是用cv2.puttext写在图像上的。我们通过cv2.getTextSize得到每个单词的高度和宽度。现在我想打印word每个字符的x坐标和y坐标的中心坐标,并将它们保存为文本文件,其中包含图像高度和宽度的标准化值。为了更清楚,请看一下代码。下面的代码能够给出单词第一个字符的中心坐标,但不能给出第二个及更多字符的中心坐标


Tags: 代码图像宽度高度字符中心单词cv2
1条回答
网友
1楼 · 发布于 2024-09-19 23:42:32

使用OpenCV,您可以找到图像中字母的轮廓,然后找到这些轮廓的中心;以下是一个例子:

从这个图像开始:

import cv2
import numpy as np

text = 'test123'
org, font, scale, color, thickness = (25,200), cv2.FONT_HERSHEY_SIMPLEX, 3, 255, 3
img = np.zeros((400,400), np.uint8)
cv2.putText(img, text, org, font, scale, color, thickness, cv2.LINE_AA)

source image

找到轮廓线:

colors = [(200,0,0), (0,200,0),(0,0,200),(123,200,0),(200,0,123),(0,123,200),(200,0,200)]
img_color = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
contours, _ = cv2.findContours(img, cv2.THRESH_BINARY, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
    cv2.drawContours(img_color, [contour], -1, colors[0], 2)
    colors.pop(0)

contours

找到轮廓的中心:

for contour in contours:
    center, _ = cv2.minEnclosingCircle(contour)

centers

相关问题 更多 >