首页 > 解决方案 > 如何通过主要 canny 边缘裁剪图像

问题描述

我得到以下图像:

在此处输入图像描述

并尝试通过代码裁剪图像:

def getoriginpaper(image):

    image2 = image.copy()
    w, h = image.shape[::-1]

    # image = cv2.blur(image, (3, 3), 0)
    image = cv2.medianBlur(image, 9)  # 9
    
    img = cv2.GaussianBlur(image, (9, 9), 0)

    canny = cv2.Canny(img, 30, 100)  # 50 150

    x, y, w, h = cv2.boundingRect(canny)
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.imshow('boundingrect_canny', img)
    cv2.waitKey(0)
    return image2[y:y+h, x:x+w]

像这样的精明图像: 在此处输入图像描述

问题是,见下图: 在此处输入图像描述

所以,上面是我通过boundingRect得到的,但实际上,我想左边走喜欢绿线,我知道原因是用红色圆圈标记的角落。

有什么方法可以去除红色圆圈部分使其左侧成为绿线?

任何建议都非常感谢。

谢谢。

标签: pythonopencv

解决方案


推荐阅读