python - 如何使用 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)
解决方案
我删除了背景,还对图像进行了 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)
希望我对你有所帮助。
推荐阅读
- javascript - ReactJS react-grid-layout 切换静态属性
- c# - 试图使 aspx 页面成为唯一的注册空间
- java - 如何在每次出现“EUR”后加上“*”和“**”
- python - Django 2 - 如何使用电子邮件确认和 CBV 注册用户?
- c - 使用列表查找字符出现的次数
- opencart-3 - 如何在 Opencart 3 中添加横幅
- python - Python + Selenium 无法通过 XPath 找到元素
- azure - Azure 数据工厂 | 从 SFTP 到 Blob 的增量数据加载
- powershell - 使用 powershell 安装 msi 文件显示命令行选项
- c# - 文件上的 ASP.NET 时间戳记被覆盖