首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV颜色浓度直方图

OpenCV颜色浓度直方图
EN

Stack Overflow用户
提问于 2012-02-20 01:15:11
回答 2查看 4.2K关注 0票数 9

我正在开发一个使用OpenCV的自动字符识别系统,我在一些文章中看到了一种进行字符分割的方法。这个想法是要制作一个图表,显示图像中颜色的浓度。

我该怎么做呢?

这是我的图像:

我需要检测上面显示的黑色区域的位置,以识别每个字符。

我试着逐个像素地将这些值相加,但我是在Android上这样做的,这花费的时间是不可接受的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-17 00:07:43

好吧,一个月后,我为此写了一点代码(用python) ;)

(假设您只是在图像密度直方图之后)

代码语言:javascript
复制
import cv

im2 = cv.LoadImage('ph05l.jpg')
width, height = cv.GetSize(im2)
hist = []
column_width = 1   # this allows you to speed up the result,
                   # at the expense of horizontal resolution. (higher is faster)
for x in xrange(width / column_width):
    column = cv.GetSubRect(im2, (x * column_width, 0, column_width, height))
    hist.append(sum(cv.Sum(column)) / 3)

为了加快速度,你不需要改变你的图像文件,只需要改变采样的面元宽度(脚本中的column_width),很明显,如果你这样做了,你会失去一些分辨率(如下图所示)。

在图像中,我使用column_width为1、10和100的文件显示了结果(绘制hist)。它们分别为我运行了0.11、0.02和0.01秒。

我也是用PIL写的,但它的运行速度要慢5到10倍。

票数 7
EN

Stack Overflow用户

发布于 2014-01-17 01:06:59

查看OpenALPR (http://www.openalpr.com)。它以相同的方式进行字符分割(使用直方图)。它在台式机上相当快,但我不确定在Android上会有多快。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9351278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档