字符分割-谷区域的最低点
前言
项目算法需求,需要将车号区域字符分割出来,尝试过一些方法,比如投影法、峰谷特征等,由于字符有粘连或者断裂的问题,分割效果并不理想,本文基于谷区域的最低点进行粘连字符的分割。
另外,由于项目比较紧,一直没有更新博客,博友的评论也没有及时回复,实在抱歉!以后还是要经常写写博客的。。。
实验步骤和原理都比较简单,只是提供字符分割的一种思路而已!
算法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 |
注意:
也可以使用峰区域的最高点进行分割,这个下次可以写出来,没有找到可以表示谷区域的函数,直接使用的峰区域,不过是将原图像进行了竖直镜像,与谷区域的最低点的思想是一致的。
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】