如何在不损失图像质量的情况下去除图像边框?

问题描述 投票:0回答:1

我有一个包含列标题边框但没有数据边框的图像,现在我想从图像中删除边框或线条而不损失其质量。

这是图片

这是我尝试过的代码,但我得到的是黑色图像,什么也看不见。

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 上尝试了一些答案,但他们没有解决问题;相反,它们使文本变得更轻。如何去除文字周围的边框?

python opencv ocr python-tesseract image-preprocessing
1个回答
0
投票

您可以使用不同的方法来实现:

  1. 使用(Opencv文本检测器模块或其他深度学习库)检测文本区域,屏蔽它们并将其他像素设置为255。

  2. 使用霍夫线或LSD检测线或段,然后将其像素设置为255。

  3. 水平和垂直迭代检查连续不变的像素值模式并将它们设置为 255。

© www.soinside.com 2019 - 2024. All rights reserved.