通过OpenCV区分图片和背景,获取图片上有文本的区域,通过CnOcr识别相应区域中的文本
通过OpenCV打开图片文件
image = cv2.imread("d:/text/3.jpg");
灰度处理,OpenCV只识别灰度图片
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY);
二值处理
只有黑白两种颜色,原来黑色,变成白色,其他都为给色
threshold = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)[1];
中值滤波
减少噪点,某点用邻近区域中的中间值代替
blur = cv2.medianBlur(threshold,5);
极度膨胀
边缘加粗
dilate = cv2.dilate(blur,iterations=6);
轮廓检测
检测内容的轮廓
binary,contours,hierarchy = cv2.findContours(dilate,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE);
contours是检测到的轮廓
获取第一点的坐标,并识别中间的内容
position = positions[0];
data_area = data_areas[f"{position[0]}-{position[1]}"]#根据坐标获得区域
data = ocr.ocr(data_area)#识别区域内容
0条评论
点击登录参与评论