我想在文本和图像部分中分割图像(来自杂志)。我的图片中有几个 ROI 的几个直方图。我将opencv与python(cv2)一起使用。
我想识别看起来像这样的直方图
http://matplotlib.sourceforge.net/users/image_tutorial-6.png
因为它是文本区域的典型形状。我怎样才能做到这一点?
编辑:感谢您到目前为止的帮助。
我将我从 ROI 中获得的直方图与我提供的示例直方图进行了比较:
hist = cv2.calcHist(roi,[0,1], None, [180,256],ranges)
compareValue = cv2.compareHist(hist, samplehist, cv.CV_COMP_CORREL)
print "ROI: {0}, compareValue: {1}".format(i,compareValue)
假设 ROI 0、1、4 和 5 是文本区域,而 ROI 是图像区域,我得到如下输出:
- 投资回报率:0,比较值:1.0
- ROI: 1, compareValue: -0.000195522081574 <--- 分类错误
- 投资回报率:2,比较值:0.0612670248952
- 投资回报率:3,比较值:-0.000517370176887
- 投资回报率:4,比较值:1.0
- 投资回报率:5,比较值:1.0
我能做些什么来避免错误的分类?对于某些图像,错误分类率约为 30%,这太高了。
(我也尝试使用 CV_COMP_CHISQR、CV_COMP_INTERSECT、CV_COMP_BHATTACHARYY 和 (hist*samplehist).sum() 但它们也提供了错误的 compareValues)