字符水平方向与垂直放投影的计算

字符水平方向与垂直放投影的计算

图像水平方向矫正后,根据输入的字符图像,阈值分割,生成二值化图像,计算二值化图像在X、Y方向的投影图像

垂直投影: 统计每列的黑色点个数

水平投影: 统计每行的黑色点个数

读入图像
图像水平方向矫正
定位字符位置 截取字符图像
阈值分割 二值化
计算XY方向投影

Halcon示例代码如下:

根据字符图像,生成二值化图像

reduce_domain (ImageRotate, ROI_0, ImageReduced)
crop_domain (ImageReduced, ImagePart)
threshold (ImagePart, Regions1, 110, 170)
region_features (ROI_0, 'width', W)
region_features (ROI_0, 'height', H)
region_to_bin (Regions1, BinImage, 0, 255, W, H)

在二值化图像中遍历,统计水平方向与垂直方向黑色像素个数

tuple_gen_const (W, 0, CountV)
tuple_gen_const (H, 0, CountH)
dev_update_off ()
for X := 0 to W-1 by 1
    for Y := 0 to H-1 by 1
        get_grayval (BinImage, Y, X, Grayval)
        if (Grayval==0)
            CountV[X]:=CountV[X]+1
            CountH[Y]:=CountH[Y]+1
        endif
    endfor
endfor

根据统计的个数,绘制投影图像

gen_image_const (Image1, 'byte', W, H)
gen_image_proto (Image1, ImageCleared, 255)

copy_image (ImageCleared, BinImageV)
copy_image (ImageCleared, BinImageH)

*垂直投影图像
for X := 0 to W-1 by 1
    for Y := H-CountV[X] to H-1 by 1
        set_grayval (BinImageV, Y, X, 0)
    endfor
endfor

*水平投影图像
for Y := 0 to H-1 by 1
    for X := 0 to CountH[Y]-1 by 1
        set_grayval (BinImageH, Y, X, 0)
    endfor
endfor

字符Q的投影图像:
原始字符图Q垂直投影Q水平投影

字符0的投影图像:
原始字符图0垂直投影0水平投影

得到投影图像后,可基于投影图像作Blob分析。
若获取区域的宽度、高度、面积、轮廓长度等属性

region_features (RegionQV, 'area', AreaQV)
region_features (RegionQV, 'width', WidthQV)
region_features (RegionQV, 'height', HeightQV)
region_features (RegionQV, 'contlength', LengthQV)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值