对一定范围内的灰度图像进行阈值处理

2024-03-14

有OpenCV吗cv.InRange函数仅适用于 RGB 图像?我可以使用此函数对灰度图像进行阈值处理吗?

我收到错误,以下是我的代码:

   import cv2
   image=cv2.imread("disparitySGB.jpg")
   thresh=cv2.inRange(image,190,255);

它给出以下错误:

thresh=cv2.inRange(图像,190,255);类型错误:未知不是 numpy 数组

我尝试通过以下方式修复它:

  thresh=cv2.inRange(image,numpy.array(190),numpy.array(255));

现在没有错误,但它产生黑色图像。


对于一张在 numpy 中形状为 (M, N)、在 OpenCV 中大小为 MxN、单通道的灰度图像,则cv2.inRange取标量界限:

gray = cv2.imread(filename, cv2.CV_LOAD_IMAGE_GRAYSCALE)
gray_filtered = cv2.inRange(gray, 190, 255)

但是对于在 numpy 中具有形状 (M, N, 3) 且在 OpenCV 中具有三个通道且大小为 MxN 的 RGB 图像,您需要使边界与“通道大小”匹配。

rgb = cv2.imread(filename, cv2.CV_LOAD_IMAGE_COLOR)
rgb_filtered = cv2.inRange(gray, (190, 190, 190), (255, 255, 255))

这在文档 http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#inrange,虽然不是很清楚。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对一定范围内的灰度图像进行阈值处理 的相关文章

随机推荐