从扫描的照片中删除空白
Remove blank spaces from scanned photos
我浏览了好几天以找到解决此问题的方法。
目前还没有解决方案。
这是我的问题:我扫描照片,上面有一些空白区域(可以在任何地方(顶部、右侧、左侧、底部))。我想通过删除空格来调整这些照片。
举个例子(这张原图上没有白色方块,只是为了匿名):
这是原图。
在这里,我突出显示了我要抑制的内容。
这是我期望的结果。
我使用 OpenCV 来做到这一点(Python 版本),但如果您有其他程序的解决方案,没问题!
有没有人找到有关如何执行该操作的解决方案?
谢谢。祝你有美好的一天!
我使用 findContours 找到了一个框,您可以使用它来裁剪图像。这是代码:
import cv2
import numpy as np
image = cv2.imread("./FH13g.jpg", cv2.IMREAD_COLOR)
blurred_image = cv2.GaussianBlur(image, (3,3), 0)
gray = cv2.cvtColor(blurred_image, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
mask = 255 - thresh
_, contours, _ = cv2.findContours(mask.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
maxArea = 0
best = None
for contour in contours:
area = cv2.contourArea(contour)
print (area)
if area > maxArea :
maxArea = area
best = contour
rect = cv2.minAreaRect(best)
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(image, [box], 0, (0, 0, 255), 3)
while True:
cv2.imshow("result", image)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
我浏览了好几天以找到解决此问题的方法。 目前还没有解决方案。
这是我的问题:我扫描照片,上面有一些空白区域(可以在任何地方(顶部、右侧、左侧、底部))。我想通过删除空格来调整这些照片。
举个例子(这张原图上没有白色方块,只是为了匿名):
这是原图。
在这里,我突出显示了我要抑制的内容。
这是我期望的结果。
我使用 OpenCV 来做到这一点(Python 版本),但如果您有其他程序的解决方案,没问题!
有没有人找到有关如何执行该操作的解决方案?
谢谢。祝你有美好的一天!
我使用 findContours 找到了一个框,您可以使用它来裁剪图像。这是代码:
import cv2
import numpy as np
image = cv2.imread("./FH13g.jpg", cv2.IMREAD_COLOR)
blurred_image = cv2.GaussianBlur(image, (3,3), 0)
gray = cv2.cvtColor(blurred_image, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
mask = 255 - thresh
_, contours, _ = cv2.findContours(mask.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
maxArea = 0
best = None
for contour in contours:
area = cv2.contourArea(contour)
print (area)
if area > maxArea :
maxArea = area
best = contour
rect = cv2.minAreaRect(best)
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(image, [box], 0, (0, 0, 255), 3)
while True:
cv2.imshow("result", image)
k = cv2.waitKey(30) & 0xff
if k == 27:
break