博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调试4
阅读量:6935 次
发布时间:2019-06-27

本文共 6001 字,大约阅读时间需要 20 分钟。

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  2 % 可调参数  3 %{  4 test_path='C:\Users\cong\Desktop\研一实战\项目\图像中时间数字识别\OCR\one\3.jpg';  5 neighbour_pixels_affect=3;  6 target_digit=2;  7 % forestTrain()参数设置  8 %   .M          - [1] number of trees to train  9 %   .H          - [max(hs)] number of classes 10 %   .N1         - [5*N/M] number of data points for training each tree 11 %   .F1         - [sqrt(F)] number features to sample for each node split 12 %   .split      - ['gini'] options include 'gini', 'entropy' and 'twoing' 13 %   .minCount   - [1] minimum number of data points to allow split 14 %   .minChild   - [1] minimum number of data points allowed at child nodes 15 %   .maxDepth   - [64] maximum depth of tree 16 %   .dWts       - [] weights used for sampling and weighing each data point 17 %   .fWts       - [] weights used for sampling features 18 %   .discretize - [] optional function mapping structured to class labels 19 %                    format: [hsClass,hBest] = discretize(hsStructured,H); 20 varargin.M=1000; 21 %varargin.H=10; 22  23 % forestApply()的输入设置 24 %  data     - [NxF] N length F feature vectors 25 %  forest   - learned forest classification model 26 %  maxDepth - [] maximum depth of tree 27 %  minCount - [] minimum number of data points to allow split 28 %  best     - [0] if true use single best prediction per tree 29  30 %  forestApply()输出结果及对比的阀值 31 %  hs       - [Nx1] predicted output labels 32 %  ps       - [NxH] predicted output label probabilities 33 ps_val_more_than0_3=0.2; 34  35 %滑窗检测,窗口尺度,步长 36 win_h=20; 37 win_w=20; 38 step=1; 39 disp('参数配置成功...'); 40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41 disp('正在读入图片及特征提取...'); 42 %读入图片及特征提取 43 data=[]; 44 label=[]; 45 temp_r1=0; 46 temp_c1=0; 47  48 for i_digit=0:10 49 %     if(i_digit==target_digit)                                %%%%%%%%%%%%%%%%%%%%%% 50 %         this_image_label=1; 51 %     end 52     %数字转字符 53     str=num2str(i_digit);                                          %%数据是不是不平衡 54     path_temp=strcat('C:\Users\cong\Desktop\研一实战\项目\图像中时间数字识别\trainingSample\num',str,'\'); 55     file=dir(path_temp); 56     for i=3:length(file) 57         path= strcat(path_temp,file(i).name); 58  59         %%%%%%%%%%%%%%%%%%%%%%%%%% 60         % 加载图片 61         %%%%%%%%%%%%%%%%%%%%%%%%%% 62         I=imread(path); 63         %I=imread('E:/WeChat.jpg'); 64         %%%%%%%%%%%%%%%%%%%%%%%%%% 65         % 提取channel features 66         %%%%%%%%%%%%%%%%%%%%%%%%%% 67         [all_channel_difference_features,temp_r1,temp_c1]=extract_features(I,neighbour_pixels_affect,1); 68         data=[data,all_channel_difference_features]; 69         label=[label;i_digit+1]; 70         if(rem(i,200)==0) 71             disp('...'); 72         end 73     end % for i=3:length(file) 74     disp('数字') 75     i_digit 76     disp('的特征提取完毕...'); 77 end  % for i_digit=0:9 78 disp('读入图片及特征提取完毕...'); 79 %%%%%%%%%%%%%%%%%%%%%%%%%% 80 % 扔进分类器中,训练 81 %%%%%%%%%%%%%%%%%%%%%%%%%% 82 data=data'; 83 disp('正在训练,请稍等...'); 84 forest = forestTrain( data, label, varargin ); 85 disp('训练完毕...'); 86 %} 87 %%%%%%%%%%%%%%%%%%%%%%%%%% 88 % 检测,测试 89 test_label=[]; 90 test_label_p=[]; 91 win_h=45; 92 win_w=30; 93 windSize = [30,40];  94 step=1; 95 ps_val_more_than0_3=0.07; 96 count=0; 97  98 disp('正在检测...'); 99 test_image=imread(test_path);100 %滑窗检测,窗口尺度,步长101 [test_r,test_c,test_z]=size(test_image);102 figure;103 imshow(test_image);104 hold on105 106 for j_test=1:step:(test_c-win_w+1)107     for i_test=1:step:(test_r-win_h+1)108         %model109         110         model=test_image(i_test:i_test+win_h-1,j_test:j_test+win_w-1,:);111         %resize112         test_image_rs=imresize(model,[temp_r1 temp_c1]);113         test_data=extract_features(test_image_rs,neighbour_pixels_affect,0);114         test_data=test_data';115         test_data=single(test_data);116         117         [hs,ps] = forestApply( test_data, forest,0,0,1);%尺度问题118          test_label=[test_label,hs]; 119          test_label_p=[test_label_p,ps(hs)];120         %if(ps>ps_val_more_than0_3)121         if (hs~=11) && (ps(hs)>0.194)122           %画框123           %%%%i_test124           %j_test125           count=count+1;126           %hs127           switch hs128               case 1129                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','r');130               case 2131                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','g');132               case 3133                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','b');134               case 4135                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','c');136               case 5137                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','m');138               case 6139                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','y');140               case 7141                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','b');142               case 8143                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','m');144               case 9145                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','r');146               case 10147                   rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','g');148           end149         150           %rectangle('Position',[j_test,i_test,30,40],'LineWidth',2,'EdgeColor','r');151           %pointAll = [i_test,j_test];  152           %[state,results]=draw_rect(test_image,pointAll,windSize); 153           hold on154         end 155         156     end157 end158 disp(' the value of count is:')159 count160 disp('检测完毕!恭喜恭喜!')161 %%%%%%%%%%%%%%%%%%%%%%%%%%

 

转载于:https://www.cnblogs.com/Wanggcong/p/4940504.html

你可能感兴趣的文章
C# DateTime 处理
查看>>
分库分表带来的完整性和一致性问题
查看>>
AMD和RequireJS初识----优化Web应用前端(按需动态加载JS)
查看>>
MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传...
查看>>
ASP.NET MVC遍历ModelState的错误信息
查看>>
现存问题以及解决方案:在ASP.NET AJAX客户端得到服务器端的DataTable
查看>>
linux关于bashrc与profile的区别(转)
查看>>
文件互斥
查看>>
成为一名优秀程序员所需要知道的那些事
查看>>
Java回顾之Spring基础
查看>>
在UIImageView中旋转图像代码例子
查看>>
写商业计划书的建议
查看>>
项目的阶段性目标管理
查看>>
结构体如何使用NSData包装
查看>>
[转]Stop Sharing Session State between Multiple Tabs of Browser
查看>>
[转]Backbone.js简单入门范例
查看>>
使用BusyBox制作根文件系统
查看>>
alpha预乘
查看>>
windows7 64位下git和tortoisegit的安装和使用
查看>>
【转】iOS程序自动检测更新的实现 -- 思路不错
查看>>