无法使用基于特定颜色的 OpenCV 在分割图像上生成轮廓 (cv2.inRange)

Unable to generate contour on segmented image using OpenCV based on a specific color(cv2.inRange)

我有一个分割图像,它是 AI 的输出 model.The 下一步是使用 OpenCV 在分割图像上的特定颜色周围创建轮廓并叠加在原始图像(未分割)上。

我尝试使用以下代码片段。

img2 = cv2.imread('output.png')
img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)
lower_brown = np.array([50,50,80])
upper_brown = np.array([(50,50,80)])
mask_brown = cv2.inRange(img2, lower_brown, upper_brown)
contours, test = cv2.findContours(mask_brown, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

但不幸的是,我无法生成 returns 空数组的蒙版和轮廓。任何线索将不胜感激

您的方法对 Python/OpenCV 是正确的。但是,为什么要从 BGR 转换为 RGB。当您这样做时,您的后续颜色将需要反转,因为您按照 B、G、R 的顺序指定了它们。

当我删除从 BGR 到 RGB 的转换时,以下对我来说工作正常:

import cv2
import numpy as np
img2 = cv2.imread('segment.png')
lower_brown = np.array([50,50,80])
upper_brown = np.array([(50,50,80)])
mask_brown = cv2.inRange(img2, lower_brown, upper_brown)
cv2.imshow("mask_brown", mask_brown)
cv2.waitKey(0)
cv2.destroyAllWindows()