Python 如何使用OpenCV删除图像上的蓝色背景色?

Python 如何使用OpenCV删除图像上的蓝色背景色?,python,image,opencv,image-processing,computer-vision,Python,Image,Opencv,Image Processing,Computer Vision,我正在尝试删除下图中的蓝色背景色。 蓝色可以是浅的,也可以是深的。 我尝试使用cv2.inRange()函数,但失败。 我该怎么做 导入系统 进口cv2 将numpy作为np导入 image=cv2.imread(sys.argv[1]) hsv=cv2.cvt颜色(图像,cv2.COLOR\u BGR2HSV) lower_blue=np.数组([85,50,40]) upper_blue=np.array([135,255,255]) 遮罩=cv2.inRange(hsv、下蓝、上蓝) 图

我正在尝试删除下图中的蓝色背景色。 蓝色可以是浅的,也可以是深的。 我尝试使用
cv2.inRange()
函数,但失败。 我该怎么做

导入系统 进口cv2 将numpy作为np导入 image=cv2.imread(sys.argv[1]) hsv=cv2.cvt颜色(图像,cv2.COLOR\u BGR2HSV) lower_blue=np.数组([85,50,40]) upper_blue=np.array([135,255,255]) 遮罩=cv2.inRange(hsv、下蓝、上蓝) 图像[掩码>0]=(255、255、255) cv2.imshow(“图像”,图像) cv2.等待键(0)

您可以尝试阈值化以获得二值图像,并进行形态学变换以平滑文本

import cv2

image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray,105, 255, cv2.THRESH_BINARY_INV)[1]
thresh = 255 - thresh

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
result = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1)

cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.imwrite('result.png', result)
cv2.waitKey()

我删除了背景,还对图像进行了光学字符识别。结果如下:

我使用的代码是:

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)

希望我能帮助您。

选择并保留黑色,您可能会做得更好。