问题描述
当前,我正在处理一些图像,并且想要计算例如灰度值,像素面积等。
为此,我需要首先从图像中检测物体。
我尝试过:
img = cv2.imread(file_path,cv2.IMREAD_GRAYSCALE)
edged = cv2.Canny(img,lower,upper)
但是它检测到对象的所有边缘。我只喜欢检测物体的轮廓(如下面的图片,红线所示)。
有什么方法可以检测物体的轮廓?
解决方法
我建议使用GRIP软件来实现成像处理管道来完成此操作(我已经为您完成了此操作)。
我的图像处理如下:
原始图片:
-
执行中值滤镜模糊处理(平滑猫毛的边缘)
-
在图像上执行HSV阈值(以创建遮罩来去除猫周围的白色)
-
应用步骤2中的遮罩以从原始猫图像获取像素值
现在使用该蒙版中的图像,您可以计算灰度值和像素区域
这是link,用于下载GRIP软件
这是我所有文件(包括自动生成的Python图像处理管道)的link