【发布时间】:2022-01-09 12:48:36
【问题描述】:
我有这张图片,我想用它制作一个二进制掩码。主要(最大)矩形应该是白色的,图片的其他部分应该是黑色的。像这样:
为了解决这个问题,我想找到一个主矩形的轮廓。我的计划是找到所有外部轮廓。然后得到面积最高的轮廓。首先,我试图找到所有轮廓并将它们绘制为二进制图像。我的尝试:
import numpy as np
import cv2
import matplotlib.pyplot as plt
from skimage import data, io
im = cv2.imread('train_1.jpg', 0)
contours, hierarchy = cv2.findContours(im.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
out = np.zeros_like(im)
cv2.drawContours(out, contours, -1, 255, 10)
io.imshow(out)
plt.show()
但即使是这个简单的代码也没有找到任何轮廓。它出什么问题了?以及如何获得面积最高的轮廓?也许我应该在这里应用 Canny 算法?请帮帮我。
【问题讨论】:
标签: python opencv image-processing cv2 scikit-image