我有一个包含列标题边框但没有数据边框的图像,现在我想从图像中删除边框或线条而不损失其质量。
这是图片
这是我尝试过的代码,但我得到的是黑色图像,什么也看不见。
import cv2
import numpy as np
image = cv2.imread('your_image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
_, thresh = cv2.threshold(blurred, 200, 255, cv2.THRESH_BINARY_INV)
kernel = np.ones((5, 5), np.uint8)
closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, iterations=2)
opened = cv2.morphologyEx(closed, cv2.MORPH_OPEN, kernel, iterations=2)
result = cv2.bitwise_and(image, image, mask=opened)
cv2.imshow('Original', image)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果是这样的
我在 Stack Overflow 上尝试了一些答案,但他们没有解决问题;相反,它们使文本变得更轻。如何去除文字周围的边框?
您可以使用不同的方法来实现:
使用(Opencv文本检测器模块或其他深度学习库)检测文本区域,屏蔽它们并将其他像素设置为255。
使用霍夫线或LSD检测线或段,然后将其像素设置为255。
水平和垂直迭代检查连续不变的像素值模式并将它们设置为 255。