computer version之手写字符识别初探——以matlab和python(tensorflow)分别示例(1)

    xiaoxiao2021-03-25  123

    昨晚2017.04.03趁清明假期再次尝试了以qq群视频的形式进行科研班会,主要内容讲解演示了computer version(计算机视觉)中关于手写字符的识别,并分别以matlab和python进行讲解。其中matlab40min,python40min。 matlab针对前两年做过的车牌识别问题进行展示,python重点介绍了Google开源的tensorflow。

    以matlab进行车牌识别: 主要思想是基于字符模板的模板匹配方法。 首先,我们以印刷体的数字、字母、车牌上省份缩写作为标准的匹配模板。 其次,将拍摄得到的rgb车牌图像转为灰度图。

    I1 = rgb2gray(I) figure(2),subplot(1,2,1),imshow(I1);title('灰度图');

    第三步,通过roberts算子进行边缘检测,得到车牌图像轮廓(可以选择其他算子,如“canny”等)。

    I2=edge(I1,'roberts',0.15,'both'); figure(3),imshow(I2);title('robert算子边缘检测')

    第四步,以腐蚀运算、平滑运算、移除小对象等操作定位核心车牌(即有效信息的地方)。

    se=[1;1;1]; I3=imerode(I2,se); figure(4),imshow(I3);title('腐蚀后图像'); se=strel('rectangle',[25,25]); I4=imclose(I3,se); figure(5),imshow(I4);title('平滑图像的轮廓'); I5=bwareaopen(I4,2000); figure(6),imshow(I5);title('从对象中移除小对象');

    第五步,对灰度图进行二值化,并进行均值滤波作为分割的素材

    g_max=double(max(max(b))); g_min=double(min(min(b))); T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值 [m,n]=size(b); d=(double(b)>=T); % d:二值图像 h=fspecial('average',3); d=im2bw(round(filter2(h,d)));

    第六步,分割及匹配。分割通过imcrop函数,匹配即简单的逐一与模板相减,差值最小的匹配度最高。 经此六步matlab的车牌识别结束。放出效果图: 原图1: 结果图1:

    原图2: 结果图2:

    原图3: 结果图3:

    转载请注明原文地址: https://ju.6miu.com/read-12751.html

    最新回复(0)