【发布时间】:2019-11-29 08:24:11
【问题描述】:
我有一个二值图像,我想找到轮廓,将最大的图像放入一个新图像中,轮廓的大小就像一个矩形围绕它一样。换句话说,将轮廓拟合到尺寸较小的新图像中。
查找轮廓例程正在为整个图像查找一个矩形,我不需要它。我查看尺寸轮廓(宽度 - 1,高度 - 1)并跳过它。
我想删除最大的矩形,然后将第二个最大的矩形放入新图像中。最大的矩形将限制新图像。然后我想将轮廓绘制成一个新的白色图像。
我只是不太了解 OpenCV 以及最好的方法。
h = img.shape[0]
w = img.shape[1]
ret, img = cv2.threshold(img, 128, 255, cv2.THRESH_BINARY)
# are these the best find contours params?
contours, hierarchy = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# paint a new image white
img = np.zeros((384, 640, 1), np.uint8)
img[:-1] = 255
# resize the contours
for i in range(0, len(contours)):
for j in range(0, len(contours[i])):
for k in range(0, len(contours[i][j])):
if contours[i][j][k][1] != h - 1 or contours[i][j][k][0] != w -1:
contours[i][j][k][1] = 384 * contours[i][j][k][1] / h
contours[i][j][k][0] = 640 * contours[i][j][k][0] / w
我找不到找到整个文档的矩形的方法。最大的矩形是图片的宽*高,但在第二个中,只有黑色像素是可见的。
【问题讨论】:
-
为了 100% 确定您的要求,在这张图片中,您想要创建一个新图片,其中只有乐谱而不是“A Betllem”标题?那张去掉“A Betllem”的新图片的尺寸会比原来的略小吗?
-
我只想将标题也适合新的缩小图像,但将黑色像素适合图像限制。你建议的是下一步,但我想我只需要找到并删除文本。谢谢。
-
另外,假设光栅化图像已经调整大小。这是最终尺寸,但您可以看到文本位于中心,而不是从 0,0 开始。
标签: python image opencv resize contour