我正在使用OpenCV的MSER特征检测器来查找文本区域。使用以下Python代码,我可以检测到文本(以及一些非文本),并在每个字母周围绘制多边形曲线。现在,我需要使用matplotlib绘制这些文本(更具体地说是每个字母),并使用不同的颜色。不同的颜色在这里很重要。我对matplotlib还不熟悉,无法想出如何实现。我寻求您的指导。我不需要完整的解决方案,但一些提示会很有帮助。
import numpy as np
import cv2
import matplotlib.pyplot as plt #plt.plot(x,y) plt.show()
img = cv2.imread('TestText.png')
mser = cv2.MSER_create()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
vis = img.copy()
regions = mser.detectRegions(gray, None)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
cv2.polylines(vis, hulls, 1, (0, 255, 0))
# cv2.putText(vis, str('change'), (20, 20), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 0, 0))
# cv2.fillPoly(vis, hulls, (0, 255, 0))
# cv2.imwrite("test.png", vis)
cv2.imshow('img', vis)
cv2.waitKey(0)
cv2.destroyAllWindows()
drawContours
函数,结合CV_FILLED
参数和一些随机颜色,就像你处理findContours
返回的轮廓一样。 - Miki