gpt4 book ai didi

python - 使用 OpenCV 检测灰色事物

转载 作者:太空狗 更新时间:2023-10-30 00:40:39 25 4
gpt4 key购买 nike

我想使用 OpenCV 检测一个明显不同于场景中其他元素的对象,因为它是灰色的。这很好,因为我可以用 R == G == B 运行测试,它允许独立于亮度,但逐个像素地进行测试很慢。

有没有更快的方法来检测灰色的东西?也许有一个 OpenCV 方法可以执行 R == G == B 测试...cv2.inRange 执行颜色阈值处理,这不是我想要的。

最佳答案

我能在 Python 中找到的最快方法是使用切片来比较每个 channel 。经过几次测试运行后,此方法比两个嵌套 for 循环快 200 倍以上。

bg = im[:,:,0] == im[:,:,1] # B == G
gr = im[:,:,1] == im[:,:,2] # G == R
slices = np.bitwise_and(bg, gr, dtype= np.uint8) * 255

这将生成一个二值图像,其中灰色对象由白色像素表示。如果您不需要二值图像,而只需要一个逻辑数组,其中灰色像素由 True 值指示,则此方法会更快:

slices = np.bitwise_and(bg, gr)

省略类型转换和乘法产生的方法比嵌套循环快 500 倍。

在此测试图像上运行此操作:

image with gray object

给出以下结果:

gray object detection mask

如您所见,正确检测到灰色对象。

关于python - 使用 OpenCV 检测灰色事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680498/

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