我正在使用inrange函数过滤RGB图像(attached RGB image),以滤除除橙色外的图像中的所有颜色。
cv::Mat output;
cv::inRange(image, cv::Scalar(255, 140 , 0), cv::Scalar(255, 165, 0),output);
cv::imshow("output", output);
然而,这一切都是返回黑色输出。另外,我看到了使用inrange函数的另一个问题,它使用了值
cv::inRange(image, cv::Scalar(0, 125, 0), cv::Scalar(255, 200, 255), output);
当我使用这些值时,它返回正确的输出。这有什么不同,我做错了什么?
答案 0 :(得分:6)
图像中的橙色为(254,165,0)。但更重要的是,OpenCV中的图像是按BGR顺序排列的,所以你需要这样做:
cv::inRange(image, cv::Scalar(0, 140, 254), cv::Scalar(0, 165, 254), output);