Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检测对象的轮廓并处理轮廓内的值_Python_Image_Cv2_Outline - Fatal编程技术网

Python 检测对象的轮廓并处理轮廓内的值

Python 检测对象的轮廓并处理轮廓内的值,python,image,cv2,outline,Python,Image,Cv2,Outline,目前,我正在处理一些图像,并希望计算,例如,灰度值,像素面积等。 要做到这一点,我需要首先从图像中检测对象 我试过: img = cv2.imread(file_path, cv2.IMREAD_GRAYSCALE) edged = cv2.Canny(img, lower, upper) 但它会检测物体的所有边缘。我只喜欢检测物体的轮廓(如下图,红线) 有没有办法检测物体的轮廓?我建议使用GRIP软件实现一个成像处理管道来实现这一点(我已经为您完成了)。 我的图像处理如下: 原始图像:

目前,我正在处理一些图像,并希望计算,例如,灰度值,像素面积等。 要做到这一点,我需要首先从图像中检测对象

我试过:

img = cv2.imread(file_path, cv2.IMREAD_GRAYSCALE)
edged = cv2.Canny(img, lower, upper)
但它会检测物体的所有边缘。我只喜欢检测物体的轮廓(如下图,红线)


有没有办法检测物体的轮廓?

我建议使用GRIP软件实现一个成像处理管道来实现这一点(我已经为您完成了)。

我的图像处理如下:
原始图像:

  • 执行中值滤波模糊(以平滑猫毛的边缘)

  • 对图像执行HSV阈值(创建遮罩,去除猫周围的白色)

  • 应用步骤2中的遮罩,从原始cat图像获取像素值

  • 现在使用来自该遮罩的图像,您可以计算灰度值和像素区域

    以下是下载GRIP软件的步骤


    这里是我所有文件(包括自动生成的Python图像处理管道)的一个示例

    ,因此我错过了一个步骤。模糊图像。我想这就是我的代码检测到所有边缘而不是图像轮廓的原因。谢谢,我会尝试这种方法。@Dong gyunKim让我知道它是否有效,如果有效,请上传:)事实上,我不想使用python以外的其他程序。基本上你的答案对我没有帮助。@Dong gyunKim我通过第二个链接附加了Python代码。您不需要使用其他程序,只需从该链接下载文件即可