gpt4 book ai didi

python - 使用 opencv 计算特定颜色像素的图像识别

转载 作者:行者123 更新时间:2023-12-01 09:00:01 24 4
gpt4 key购买 nike

我的代码得到许多带有数字的小图像。我尝试将其与我的模板进行比较并获得正确的数据。它起作用了..

enter image description here enter image description here

original= cv2.imread('im/10.png')
sought = (254,254,254)
result = np.count_nonzero(np.all(original==sought,axis=2))

正如您在这些情况下看到的,白色数字位于图片的不同角落,没有问题,结果(白色像素的数量)相等,我得到了 18=18。但现在有新照片enter image description here , enter image description here .

首先,这里的数字不是 (254,254,254)。我认为图像可能更暗淡。或质量较差,我尝试使用:

result = np.count_nonzero(np.all(original > 200,axis=2))

不幸的是,它给了我不同的数据。两张里面有 13 的图片不相等。

我想要什么:

从深色背景中指出白色数字的方法,周围的细白色圆圈除外。 (在 13 张图片中)圆圈不是问题,如果我在中心裁剪图像并去掉圆圈,我的结果不会改变 - 13 仍然!= 13。

也许可以将图像转换为灰度,也许转换为 HSV,也许只是为了使其更亮或更对比度。

像素计数对我来说很有好处,它非常快而且通常很准确。

我再说一遍:现在我的代码看到两张有 13 个不同的图片(有不同的颜色,或亮度或黑白比例,我不知道)我想摆脱这个问题。

最佳答案

我建议您首先对图像进行阈值处理,这意味着带有字母的像素的值为 255,其余的为 0。这可以通过 OpenCV 的自适应阈值函数来完成(您可以参见 this 答案)。

然后,您将需要一种更好的方法来确定数字。仅仅计算白色像素的数量还不够稳健。例如,数字 1331 应该具有相同数量的白色像素。这可能会破坏你的算法。

这里最好的解决方案是人工智能。例如,您可以查看 Python Tesseract,但是有很多 Python 软件包和教程。只需谷歌this ,您会得到有用的答案,例如 this一。甚至还有像 this 这样的教程一个。

如果你不想使用人工智能,那么你的算法总会在某个地方出问题。

关于python - 使用 opencv 计算特定颜色像素的图像识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52525903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com