如何在OpenCV中使用inRange执行精确的阈值
我正在尝试使用inRange函数执行阈值化,以创建游戏中项目的白色遮罩,用于功能检测。我目前正在使用带有轻微高斯模糊的inRange函数来去除噪声,试图完全屏蔽图像中的项目 与硬编码HSV值相比,是否有更自适应的阈值化方法?我对OpenCV比较陌生,我想知道是否有更有效/精确的方法来执行此任务 下面是我的代码,介绍了我目前如何通过阈值执行操作,以及我的结果如何在OpenCV中使用inRange执行精确的阈值,opencv,mask,image-recognition,hsv,Opencv,Mask,Image Recognition,Hsv,我正在尝试使用inRange函数执行阈值化,以创建游戏中项目的白色遮罩,用于功能检测。我目前正在使用带有轻微高斯模糊的inRange函数来去除噪声,试图完全屏蔽图像中的项目 与硬编码HSV值相比,是否有更自适应的阈值化方法?我对OpenCV比较陌生,我想知道是否有更有效/精确的方法来执行此任务 下面是我的代码,介绍了我目前如何通过阈值执行操作,以及我的结果 Mat mask, scene; scene = imread("./inGameWeapon.png&quo
Mat mask, scene;
scene = imread("./inGameWeapon.png");
resize(scene, scene, Size(), (270.0 / scene.rows), (270.0 / scene.cols));
cv::GaussianBlur(scene, scene, cv::Size(5, 5), 0);
cvtColor(scene, scene, COLOR_BGR2HSV);
inRange(scene, Scalar(0, 50, 0), Scalar(200, 92, 100), mask); //Remove blue background
imshow("Threshold", mask);
如果你不能硬核,你将不得不识别/检测/找到范围。一种方法是在使用硬编码阈值之前对图像进行标准化