【发布时间】:2020-04-25 10:16:02
【问题描述】:
我有以下图像,它是一张收据图像,并且收据周围有很多空白区域。我想裁剪空白区域。我不能手动裁剪它,所以我正在寻找一种可以做到的方法。
裁剪一个:
从以下帖子中尝试了此代码:How to remove whitespace from an image in OpenCV?
gray = load_image(IMG_FILE) # image file
gray = 255*(gray < 128).astype(np.uint8)
coords = cv2.findNonZero(gray) # Find all non-zero points (text)
x, y, w, h = cv2.boundingRect(coords) # Find minimum spanning bounding box
rect = load_image(IMG_FILE)[y:y+h, x:x+w] # Crop the image - note we do this on the original image
它正在裁剪一小部分空白区域。
【问题讨论】:
-
@TanyaGupta 但那是一个密集的文本,等距且逐行。在我的情况下,它是一张收据图像,它的间距(或)不完全相等。它对我不起作用。我尝试过的上述代码取自该答案。
-
我是您提到的帖子的原作者。您的代码确实可以进行非常轻微的修复。我已经写了一个自我控制的答案。顺便说一句,为了披露您没有正确使用整个解决方案。您删除了进行噪声过滤的答案的形态部分 - 检查我的答案中链接的代码的第二个版本。这是它没有按预期工作的主要原因。
标签: python image opencv image-processing computer-vision