首页 > 解决方案 > 如何使用 OpenCV 去除图像上的蓝色背景色?

问题描述

我正在尝试删除下图中的蓝色背景颜色。蓝色可以是浅的或深的。我尝试使用cv2.inRange()函数但失败了。我怎样才能做到这一点?

在此处输入图像描述

import sys
import cv2
import numpy as np

image = cv2.imread(sys.argv[1])

hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

lower_blue = np.array([85, 50, 40])
upper_blue = np.array([135, 255, 255])

mask = cv2.inRange(hsv, lower_blue, upper_blue)

image[mask>0]=(255, 255, 255)

cv2.imshow('image',image)
cv2.waitKey(0)

标签: pythonimageopencvimage-processingcomputer-vision

解决方案


我删除了背景,还对图像进行了 OCR。结果如下:

结果

我使用的代码:

import pytesseract
import cv2

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe'

img = cv2.imread('idText.png')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
adaptiveThresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 35, 90)

config = '-l eng --oem 1 --psm 3'
text = pytesseract.image_to_string(adaptiveThresh, config=config)

print("Result: " + text)

cv2.imshow('original', img)
cv2.imshow('adaptiveThresh', adaptiveThresh)

cv2.waitKey(0)

希望我对你有所帮助。


推荐阅读