如何从 UCI 的“字母图像识别数据集”等图像创建数据

Posted

技术标签:

【中文标题】如何从 UCI 的“字母图像识别数据集”等图像创建数据【英文标题】:How to create data fom image like "Letter Image Recognition Dataset" from UCI 【发布时间】:2010-11-19 05:44:38 【问题描述】:

我正在使用 OpenCV 中的 letter_regcog 示例,它使用了来自 UCI 的数据集,其结构如下:

属性信息: 1.lettr大写字母(从A到Z的26个值) 2. x-box box的水平位置(整数) 3. box的y-box垂直位置(整数) 4.宽度宽度框(整数) 5.盒子高度(整数) 6. onpix total # on像素(整数) 7. x-bar mean x of on pixel in box (integer) 8. y-bar mean y of on pixels in box (integer) 9. x2bar 均值 x 方差(整数) 10. y2bar 均值 y 方差(整数) 11. xybar 均值 x y 相关性(整数) 12. x2ybr x * x * y 的平均值(整数) 13. xy2br x * y * y 的平均值(整数) 14. x-ege 从左到右的平均边数(整数) 15. x-ege 与 y 的 xegvy 相关性(整数) 16. y-ege mean edge count bottom to top(整数) 17. y-ege 与 x 的 yegvx 相关性(整数)

示例:

T,2,8,3,5,1,8,13,0,6,6,10,8,0,8,0,8 I,5,12,3,7,2,10,5,5,4,13,3,9,2,8,4,10

现在我已经分割了字母的图像,并希望将其转换为这样的数据以识别它,但我不明白所有值的平均值,如“6. onpix total # on pixel”是什么意思?你能解释一下这些值的平均值吗?谢谢。

【问题讨论】:

【参考方案1】:

我不熟悉 OpenCV 的 letter_recog 示例,但这似乎是一个特征向量,或一组关于字母图像的统计数据,用于对字母的未来出现进行分类。分割的结果应该给你留下一个二进制掩码,字母上是 1,其他地方都是 0。 onpix 只是落在字母上的像素总数,或者换句话说,是二进制掩码的总和。

列表中的大多数其余值都需要根据二进制掩码中值为 1 的像素集来计算。 x 和 y 只是像素的位置。例如,x-bar 只是掩码中所有像素为 1 的所有 x 位置的样本平均值。您应该能够轻松地在网络上找到有关均值、方差、协方差和相关性的数学定义的参考资料。

14-17 略有不同,因为它们基于边缘像素,但计算应该相似,只是在一组不同的像素上。

【讨论】:

【参考方案2】:

我的名字是安东尼奥·伯纳尔。 在本文的第 3 页中,您将找到每个值的良好描述。 Letter Recognition Using Holland-Style Adaptive Classifiers

如果您有任何疑问,请告诉我。 我试图使这个算法工作,但我的问题是我不知道如何缩放这些值以适应它们的范围 0-15。 你知道怎么做吗?

来自 Google 学者的另一个链接 -> Letter Recognition Using Holland-Style Adaptive Classifiers

【讨论】:

嗨 Anotnio,我还没有读过论文,但是重新调整值应该只是乘以一个比例因子。例如,如果我的 onpix = 0 到 255,那么我可以通过以下方式重新缩放: scaled_onpix = (onpix * 15)/255 这就是你要找的吗? 我也在苦苦思索什么是最好的扩展方式。我想作者必须假设图像大小的一些上限。似乎因为大多数字母只占据边界框的一小部分,例如 #6:onpix 的最大值将比任何真实字符所能达到的要大得多。

以上是关于如何从 UCI 的“字母图像识别数据集”等图像创建数据的主要内容,如果未能解决你的问题,请参考以下文章

Java:如何从一组图像创建电影?

如何从python中的URL中提取特征?

如何从背景和文本颜色相似的轮胎等图像中检测文本?

如何从多个 png 图像创建动画 gif 图像?

如何以编程方式动态创建所有 Android ui 组件的列表?例如文本视图、图像视图等

如何从 PIL 图像创建 OpenCV 图像?