zoukankan      html  css  js  c++  java
  • 字符分割-谷区域的最低点

    前言

       项目算法需求,需要将车号区域字符分割出来,尝试过一些方法,比如投影法、峰谷特征等,由于字符有粘连或者断裂的问题,分割效果并不理想,本文基于谷区域的最低点进行粘连字符的分割。

    另外,由于项目比较紧,一直没有更新博客,博友的评论也没有及时回复,实在抱歉!以后还是要经常写写博客的。。。

        实验步骤和原理都比较简单,只是提供字符分割的一种思路而已!

     

       算法matlab代码如下:

    % /************************************************************************
    % * Copyright(c) 2017  ZRJ
    % * All rights reserved.
    % *
    % * File:	reseg_valley.m
    % * Brief: 基于谷区域的最低点进行粘连字符区域再分割算法;
    % * Version: 1.0
    % * Author: zrj
    % * Email: happyamyhope@163.com
    % * Date:	2017/02/28
    % * Reference:一种新的货运列车车号分割算法;
    % * History:
    % * 20170316:基于竖直镜像谷区域的最低点进行粘连字符区域再分割算法;
    %
    % ************************************************************************/
    %粘连字符区域再分割
    function rePIN = reseg_valley(BW)
    %程序功能:字符粘连区域再分割
    %输入:BW——字符粘连区域的二值图像;
    %输出:rePIN——输出字符的二值化图像
    
    %Parameter:
    mph = 10;%峰值的最小高度;
    mpd = 20;%设置两峰值之间的最小间隔数;
    
    [m, n] = size(BW);
    vm = flip(BW, 1);%竖直镜像
    for j = 1 : 1 : n %列信息
        for i = m : -1 : 1%行信息
            if(vm(i, j) == 1)
                peak(1, j) = m-i+1;%自数字下边界开始向上探到数字区域的深度即峰区域的最高点;
                break;
            end
        end
    end
    clear i j
    figure, plot(peak)
    [ppks,plocs] = findpeaks(peak, 'minpeakheight',mph, 'minpeakdistance', mpd);
    psize = length(ppks);
    if(psize < 1)
        rePIN{1,1} = BW;
        return;
    end
    text(plocs+.02, ppks, num2str((1: numel(ppks))'))
    
    figure, title('粘连区域谷区域特征再分割结果');
    rePIN = cell(psize+1, 1);
    rePIN{1,1}= BW(:, 1 :plocs(1));
    rePIN{psize+1, 1}= BW(:, plocs(psize): n );
    for i = 2 : 1 : psize
        rePIN{i, 1}= BW(:, plocs(i-1): plocs(i) );
    end
    clear i 
    for i = 1 : psize+1
       subplot(1, psize+1, i); imshow( rePIN{i, 1} ); 
    end
    clear i 
    
    end%end function reseg_valley
    

       

    注意:

    也可以使用峰区域的最高点进行分割,这个下次可以写出来,没有找到可以表示谷区域的函数,直接使用的峰区域,不过是将原图像进行了竖直镜像,与谷区域的最低点的思想是一致的。

     

  • 相关阅读:
    [转]tf.summary() 用法
    PASCAL VOC工具包解读
    [ERROR] 安装完Detectron后出现 cython_nms.so: undefined symbol: PyFPE_jbuf
    用Tensorflow做蝴蝶检测
    双系统,重装ubuntu后无法进入windows
    [Error]NodeDef mentions attr 'identical_element_shapes' not in Op<name=TensorArrayV3;
    [转]调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题
    js交互轮播图
    js取俩个数之间的随机数
    原生js实现触摸滚动轮播图
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/6590513.html
Copyright © 2011-2022 走看看