可以使用哪些图像处理技术来实现检测以下图像中显示的圣诞树的应用程序?

我正在寻找解决方案,将工作在所有这些图像。因此,需要训练haar级联分类器或模板匹配的方法不是很有趣。

我正在寻找可以用任何编程语言编写的东西,只要它只使用开源技术。解决方案必须使用在此问题上共享的图像进行测试。有6个输入图像,答案应该显示处理每个图像的结果。最后,对于每个输出图像,必须在检测到的树周围绘制红线。

您将如何通过编程来检测这些图像中的树木呢?

我试图在OpenCV-Python (cv2)中实现“数字识别OCR”。这只是为了学习。我想学习OpenCV中KNearest和SVM的特性。

每个数字都有100个样本(即图像)。我想和他们一起训练。

OpenCV样本中有一个letter_recognition .py样本。但我仍然不知道如何使用它。我不明白是什么样本,反应等等。而且,它首先会加载一个txt文件,这是我一开始不理解的。

后来稍微找了一下,我找到了一个字母识别。CPP样本中的数据。我用它做了一个cv2的代码。在letter_recognize .py的模型中KNearest(仅用于测试):

import numpy as np
import cv2

fn = 'letter-recognition.data'
a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') })
samples, responses = a[:,1:], a[:,0]

model = cv2.KNearest()
retval = model.train(samples,responses)
retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10)
print results.ravel()

它给了我一个大小为20000的数组,我不知道它是什么。

问题:

1)什么是字母识别。数据文件吗?如何从我自己的数据集构建该文件?

2) results.reval()表示什么?

3)如何使用letter_recognition编写一个简单的数字识别工具。数据文件(KNearest或SVM)?

我希望创建一个图像基表,然后将任何新图像与之进行比较,以确定新图像是否与基表完全相同(或接近)。

例如:如果你想减少100次相同图像的存储,你可以存储它的一个副本,并提供它的参考链接。当输入一个新图像时,你想要与现有的图像进行比较,以确保它不是重复的…想法吗?

我的一个想法是缩小到一个小缩略图,然后随机选择100个像素位置并进行比较。