gpt4 book ai didi

python - 如何使用python将图像中方形标题的背景从黑色反转为白色?

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:21 26 4
gpt4 key购买 nike

我正在尝试将方形标题(包含 TERMS PONUMBER PROJECT 的黑色条)的背景设​​为白色,将文本设为黑色。

sample_image of invoice

我曾尝试使用 findContours 方法找到轮廓,然后裁剪和反转它们,这样我就可以得到黑色文本和白色背景的形式。但问题是我对如何继续前进没有任何想法,或者是否有更好的方法来解决这个问题

image =cv2.imread("default.jpg")
gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

th, thresh = cv2.threshold(gray,1, 255, cv2.THRESH_BINARY_INV)

kernel = cv2.getStructuringElemnt(cv2.MORPH_ELLIPSE,(7,7))
morp_image = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

contours = cv2.findContours(morp_image,
cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2]
cnts = sorted(contours,key=cv2.contourArea)[-1]

上面的代码确实在单独的基础上找到了每个这样的轮廓,比如如果我将代码最后一行中的 [-1] 更改为 [-2],它会找到下一个轮廓,但我想找到所有这样的轮廓一次性将图像中的区域设置为白色,同时将文本更改为黑色。

谢谢

最佳答案

这是一个简单的方法

  • 将图像转换为灰度和高斯模糊
  • Otsu 获取二值图像的阈值
  • 寻找轮廓
  • 使用角点数和轮廓区域进行过滤
  • 提取ROI,反转ROI,替换成原图

想法是,如果轮廓有 4 个角,则它必须是正方形/矩形。此外,我们使用最小轮廓区域进行过滤以忽略噪声。如果轮廓通过了我们的过滤器,那么我们就有了一个需要反转的 ROI。检测到的ROI

enter image description here

现在我们使用 Numpy 切片提取每个 ROI。这是反转前后的每个 ROI

enter image description here enter image description here

enter image description here enter image description here

enter image description here enter image description here

enter image description here enter image description here

现在我们只需将每个反转的 ROI 替换回原始图像即可得到我们的结果

enter image description here

import cv2

image = cv2.imread('1.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (3,3), 0)
thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

cnts = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

for c in cnts:
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.015 * peri, True)
area = cv2.contourArea(c)
if len(approx) == 4 and area > 1000:
x,y,w,h = cv2.boundingRect(c)
ROI = 255 - image[y:y+h,x:x+w]
image[y:y+h, x:x+w] = ROI

cv2.imshow('image', image)
cv2.imwrite('image.png', image)
cv2.waitKey()

关于python - 如何使用python将图像中方形标题的背景从黑色反转为白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57903809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com