OCR字符识别

OCR字符识别

步骤
采图--位置转正--预处理--分割字符区域--排序--识别
小技巧:白底黑字图像可以喷涂获得,提取到字符区域后,创建一个灰度值为0的图像,图像大小要和原图一致,把字符区域喷涂上去,得到超级标准的白底黑字图

从文件中读取OCR分类器
read_ocr_class_mlp ('Document_0-9A-Z_NoRej.omc', OCRHandle)
分类器文件    句柄

对多个字符进行识别
do_ocr_multi_class_mlp (SortedRegions, ImageScaled1, OCRHandle, Class, Confidence)
输入字符区域   输入图像(白底黑字)  句柄  值  得分

对单个字符进行识别
do_ocr_single_class_mlp (SortedRegions, ImageScaled1, OCRHandle, 1, Class1, Confidence1)
输入字符区域   输入图像(白底黑字)  句柄   输出结果数量  值  得分

图像投影变换

计算变换前后点的投影矩阵
hom_vector_to_proj_hom_mat2d ([80, 80, 160, 160], [80, 370, 370, 80], [1, 1, 1, 1], [80, 80, 160, 160], [80, 370, 370, 80], [1, 1, 1, 1], 'normalized_dlt', HomMat2D)
变换前点行坐标,列坐标
变换后点行坐标,列坐标
算法   输出矩阵

图像投影变换
projective_trans_image (ImageR, TransImage, HomMat2D, 'bilinear', 'false', 'false')
输入图像   输出变换后图像   投影矩阵   算法   是否自动调整大小   是否区域变换

将区域分割为大小相等的矩形
partition_rectangle (RegionTrans, Partitioned, 25, 40)
输入区域   输出区域   矩形宽  矩形高

计算两个区域的交点
intersection (Partitioned, Partitioned, RegionIntersection)
输入大(多)区域   输入小(单)区域
输出相交区域(没有八领域相连也是一个区域)
计算两个区域的差集
difference (Image, NumberCand, NoNumbers)
图像区域   区域1  区域1差集

计算区域的均值和标准差
intensity (NumberParts, Green, MeanIntensity, Deviation)
区域   图像  均值   标准差

填充区域之间的间隙
expand_gray_ref (Regions, ImageOpening, Regions, RegionExpand, 'maximal', 'image', 128, 32)
字符区域   图像    完整字符区域补集(背景区域)  输出区域  迭代次数   图像比较  均值   阈值(越大增加的像素越多)

环形--极坐标转换(拉直)

1.求内外圆半径     
2  极坐标转换
直角--》极坐标
polar_trans_image_ext (ImageScaled1, PolarTransImage, 177, 300, rad(360), rad(0), R2, R1, 512, 512, 'nearest_neighbor')
输入原图像   输出转换后图像
输入圆中心的行列坐标    起始角度(rad)   终止角度(rad)  大圆半径   小圆半径    输出图像的宽、高(宽高最好和原图一样大)    插值算法

极坐标--》直角

计算角度算子总结

求直线与水平向右水平线的角度
line_orientation (RoStr2, CoStr2, RoEnd2, CoEnd2, Phi)
线段起点和终点行列坐标   与水平线角度(弧度)

求区域的角度-弧度
找到区域的最小外接椭圆,水平轴与椭圆的主轴的夹角就是区域的角度
注:主轴方向指向椭圆尖锐的一端,水平轴与主轴正方向的夹角
orientation_region (Region, Phi)
Region(输入):输入区域
Phi(输出):输出角度(单位弧度(rad))
区域转正搭配使用
orientation_region (RegionDilation, Phi)
if (abs(Phi)<rda(90))
    *转为0°
    vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)
else
    *转为180°
    vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(180), HomMat2D)
endif

求文本行角度
text_line_orientation (ROI_0, Image, 25, -0.523599, 0.523599, OrientationAngle)
文本行区域   输入图像  文字高度   最小旋转角度(rad)  最大旋转角度(rad) 输出文本行角度(rad)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值