前言
针对有其他干扰的字符区域,干扰区域明显偏于某侧的,可以使用质心判断进行去除。
matlab代码如下:
% /************************************************************************ % * Copyright(c) 2017 ZRJ % * All rights reserved. % * % * File: bwCentroidFunc.m % * Brief: 得到二值化图像的质心位置; % * Version: 1.0 % * Author: ZRJ % * Email: happyamyhope@163.com % * Date: 2017/03/03 % * Reference: % * History: % * 20170303:得到二值化图像的质心位置; % % ************************************************************************/ function flag = bwCentroidFunc( bw ) %程序功能:得到二值化图像的质心位置的判断; %输入Input: % bw -- black-and-white image; %输出Output: % flag -- Centroid flag; % cenr_cor -- Centroid coordinate; % cenr_cor(1) -- row of bwCentroid; % cenr_cor(2) -- column of bwCentroid; x = 0;%row of bwCentroid; y = 0;%column of bwCentroid; flag = 0;%满足质心位置条件的标志位; %去除不完整的车号图像 if ( size(bw, 2) < 10 ) return; end % % 行投影 % rp = sum(bw, 2); % rp_ra = 0; % x_Centroid = 0; % for i = 1 : size(bw, 1) % rp_ra = rp_ra + rp(i) / sum(rp); % if ( rp_ra >= 0.5 ) % x_Centroid = i; % break; % end % end % clear i % 列投影 cp = sum(bw, 1); cp_ra = 0; y_Centroid = 0; for i = 1 : size(bw, 2) cp_ra = cp_ra + cp(i) / sum(cp); if ( cp_ra >= 0.5 ) y_Centroid = i; break; end end clear i % cenr_cor(1) = x_Centroid;%质心所在行数目 % cenr_cor(2) = y_Centroid;%质心所在列数目 if ( y_Centroid < 0.3*size(bw, 2) || y_Centroid > 0.7*size(bw, 2) )%不满足质心位置 flag = 1; end %end if end % end bwCentroidFunc function
以上代码只使用了列方向质心进行判断,可根据实际需求进行更改。
完