CentOS7中tesseract和opencv去除背景后中的灰色和白色后选择图片指定坐标的文字并保存图片
以下是在CentOS7中使用tesseract和opencv去除背景并选择指定坐标的文字并保存图片的步骤:
- 安装tesseract和opencv
在CentOS7中使用以下命令安装tesseract和opencv:
sudo yum install tesseract tesseract-lang opencv opencv-devel
- 准备图片
将需要处理的图片保存到指定目录下。本例中假设图片保存在/home/user/images目录下。
- 去除背景
使用opencv的图像处理功能去除图片背景。可以使用以下代码:
import cv2
# 读取图片
img = cv2.imread('/home/user/images/example.png')
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 去除背景
bg_sub = cv2.createBackgroundSubtractorMOG2()
mask = bg_sub.apply(gray)
# 保存处理后的图片
cv2.imwrite('/home/user/images/processed.png', mask)
这段代码将读取/home/user/images/example.png图片,并将其转换为灰度图像。然后使用opencv提供的createBackgroundSubtractorMOG2函数创建一个背景去除器,并将其应用于灰度图像。最后将处理后的图片保存为/home/user/images/processed.png。
- 识别文字
使用tesseract识别处理后的图片中的文字。可以使用以下命令:
tesseract /home/user/images/processed.png /home/user/images/result -l eng --psm 6
其中:
/home/user/images/processed.png是处理后的图片路径;/home/user/images/result是识别结果保存路径;-l eng表示使用英文语言包进行识别;--psm 6表示使用自动页面分割模式进行识别。
- 选择指定坐标的文字并保存图片
使用opencv的图像处理功能选择指定坐标的文字,并将其保存为图片。可以使用以下代码:
import cv2
# 读取处理后的图片
img = cv2.imread('/home/user/images/processed.png')
# 选择指定坐标的文字区域并保存为图片
x, y, w, h = 100, 100, 200, 50
text_box = img[y:y+h, x:x+w]
cv2.imwrite('/home/user/images/text_box.png', text_box)
这段代码将读取/home/user/images/processed.png图片,然后选择左上角坐标为(100, 100),宽度为200,高度为50的矩形区域,并将其保存为/home/user/images/text_box.png图片。
完成以上步骤后,/home/user/images/text_box.png图片中将只包含指定坐标的文字区域
原文地址: https://www.cveoy.top/t/topic/hrm2 著作权归作者所有。请勿转载和采集!