一、背景
为了更好地做好图片文字识别和有效信息提取,需要将图片有效信息区域裁剪出来,再做下游的文字识别及后续处理。本文图片的有效信息区域被矩形包围,目标区域就是一个矩形。
便于追溯,首先打印主要组件版本信息:
import cv2
import numpy as np
import math
print(cv2.__version__)
二、图像预处理
首先要对图片进行灰化、滤波、二值化处理,其中在二值化处理的时候,thresh值须根据对应场景设置合适的值,可以通过遍历颜色值寻找最合适的数值,我这里最合适的值是170。
file = "D:\\cut\\3.jpg"
'''
SystemError: <built-in function imread> returned NULL without setting an error
中文路径=>英文路径
'''
image = cv2.imread(file)
# 1.灰化
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
'''
TypeError: imshow() missing required argument 'mat'
cv2.imshow(gray_image)=>cv2.imshow('img', gray_image)
'''
#cv2.imshow('img', gray_image)
dest_file = "D:\\cut\\3_gray.jpg"
cv2.imwrite(dest_file, gray_image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
#2.中值滤波
binary_image = cv2.medianBlur(gray_image, 7)
#cv2.imshow('img', binary_image)
dest_file = "D:\\cut\\3_medianBlur.jpg"
cv2.imwrite(dest_file, binary_image, [int(cv2.IMWRITE_PNG