因此,我正在尝试创建一个程序,该程序可以查看图像的编号并在控制台中打印整数。(我正在使用 python 3)
例如,程序识别出以下图像(程序必须检查的实际图像)是数字 2:
我试图将它与其中包含 2 的其他图像进行比较,cv2.matchTemplate()但是每次蓝色像素的 rgb 值对于每个图像都有一点不同,并且图像可能会更大或更小。例如下图:
除了其他蓝色数字图像(0-9)之外,它还必须识别它,例如以下图像:
我尝试了多个匹配模板代码,并制作了一个包含数字 0-9 图像的文件夹作为模板,但每次几乎每个数字都在需要识别的数字中被识别。例如数字 5 在数字 2 的图像中被识别。如果它不能识别所有这些,它就会识别错误的。
我试过的那些:
但就像我之前说的那样,这些问题也随之而来。
我还尝试查看每张图像中蓝色的百分比,但这些数字接近于通过查看其中的蓝色来告诉数字不同。
有没有人有办法解决吗?我是不是很笨,cv2.matchTemplate()有没有更简单的选择?(我不介意为此使用库,因为这是更大代码段的一部分,但我更喜欢对其进行编码,而不是库)
所以我试图制作一个代码来获取列表中的每个单词并添加相同的单词,第一个字母是小写或大写(取决于单词)
这是代码
lost = ["de", "da", "do"] #The actual list is much bigger and with numbers but this list is small and has the same problem
for x in lost:
if x[:1] == x[:1].lower():
try:
print x
int(x[:1])
except ValueError:
print x
lost.append(x[:1].upper() + x[1:])
elif x[:1] == x[:1].upper():
try:
int(x[:1])
except ValueError:
lost.append(x[:1].lower() + x[1:])
Run Code Online (Sandbox Code Playgroud)
但是在完成所有 3 个单词之后,for 循环再次开始,因此控制台看起来像这样:
de
de
da
da
do
do
de
de
da
da
do
do
....
Run Code Online (Sandbox Code Playgroud)
为什么它做完这三个字后还不停止?