📄 mpaper.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>mpaper.m</title><link rel="stylesheet" type="text/css" href="../../../m-syntax.css"></head><body><code><span class=defun_kw>function</span> <span class=defun_name>mpaperr</span>(<span class=defun_in>varargin</span>)<br><span class=h1>% MPAPER Allows to enter handwritten characters by mouse.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% mpaper</span><br><span class=help>% mpaper( options )</span><br><span class=help>% mpaper({'param1',val1,...})</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This script allows a user to draw images by mouse to </span><br><span class=help>% figure with a grid. The drown images are normalized to</span><br><span class=help>% exactly fit the subwindows given by the grid.</span><br><span class=help>% <span class=help_field>Control:</span></span><br><span class=help>% Left mouse button ... draw line.</span><br><span class=help>% Right mouse button ... erase the focused subwindow.</span><br><span class=help>% Middle mouse button ... call function which proccess the</span><br><span class=help>% drawn data.</span><br><span class=help>%</span><br><span class=help>% The function called to processed the drawn data is</span><br><span class=help>% prescribed by options.fun. The implicite setting is 'ocr_fun'</span><br><span class=help>% which calls OCR trained for handwritten numerals and displays </span><br><span class=help>% the result of recognition.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% options.width [int] Width of a single image.</span><br><span class=help>% options.height [int] Height of a single image.</span><br><span class=help>% options.fun [string] If the middle mouse button is </span><br><span class=help>% pressed then feval(fun,data) is called where</span><br><span class=help>% the structure data contains:</span><br><span class=help>% data.X [dim x num_images] images stored as columns</span><br><span class=help>% of size dim = width*height.</span><br><span class=help>% data.img_size = [height,width].</span><br><span class=help>% </span><br><span class=help>% <span class=help_field>Example:</span></span><br><span class=help>% open ocr_demo.fig</span><br><span class=help>%</span><br><hr><span class=help1>% <span class=help1_field>(c)</span> Statistical Pattern Recognition Toolbox, (C) 1999-2003,</span><br><span class=help1>% Written by Vojtech Franc and Vaclav Hlavac,</span><br><span class=help1>% <a href="http://www.cvut.cz">Czech Technical University Prague</a>,</span><br><span class=help1>% <a href="http://www.feld.cvut.cz">Faculty of Electrical engineering</a>,</span><br><br><span class=help1>% <span class=help1_field>Modifications:</span></span><br><span class=help1>% 9-sep-03, VF, </span><br><span class=help1>% 8-sep-03, MM, Martin Matousek programmed the GUI enviroment.</span><br><br><hr><span class=keyword>if</span> <span class=stack>nargin</span> >= 1 & ischar(<span class=stack>varargin</span>{1}),<br> <span class=keyword>switch</span> <span class=stack>varargin</span>{1},<br> <span class=label>case</span> <span class=quotes>'Dn'</span>, Dn;<br> <span class=label>case</span> <span class=quotes>'Up'</span>, Up;<br> <span class=label>case</span> <span class=quotes>'Plot'</span>, Plot;<br> <span class=keyword>end</span><br><span class=keyword>else</span><br> <br> <span class=keyword>if</span> <span class=stack>nargin</span> >=1, options = c2s(<span class=stack>varargin</span>{1}); <span class=keyword>else</span> options=[]; <span class=keyword>end</span><br> <br> <span class=comment>% function called when middle button is pressed</span><br> <span class=keyword>if</span> ~isfield( options, <span class=quotes>'fun'</span>), options.fun = <span class=quotes>'ocr_fun'</span>; <span class=keyword>end</span><br> <br> <span class=comment>% resulting resolution of each character</span><br> <span class=keyword>if</span> ~isfield( options, <span class=quotes>'width'</span>), options.width = 16; <span class=keyword>end</span><br> <span class=keyword>if</span> ~isfield( options, <span class=quotes>'height'</span>), options.height = 16; <span class=keyword>end</span><br> <br> <span class=comment>% brush stroke within del_dist is deleted</span><br> <span class=keyword>if</span> ~isfield( options, <span class=quotes>'del_dist'</span>), options.del_dist = 0.01; <span class=keyword>end</span> <br> <br> <span class=graph>figure</span>;<br> <span class=graph>set</span>( <span class=graph>gcf</span>, <span class=quotes>'WindowButtonDownFcn'</span>, <span class=quotes>'mpaper('</span><span class=quotes>'Dn'</span><span class=quotes>')'</span> );<br> Cla;<br> setappdata( <span class=graph>gcf</span>, <span class=quotes>'options'</span>,options );<br> setappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span>,cell(5,10) );<br><br><span class=keyword>end</span><br><br><span class=defun_kw>function</span> <span class=defun_name>Up</span>(<span class=defun_in>varargin</span>)<br> <span class=graph>set</span>( <span class=graph>gcf</span>, <span class=quotes>'WindowButtonMotionFcn'</span>, <span class=quotes>''</span> );<br> <span class=graph>set</span>( <span class=graph>gcf</span>, <span class=quotes>'WindowButtonUpFcn'</span>, <span class=quotes>''</span> );<br> <br> last = getappdata( <span class=graph>gcf</span>, <span class=quotes>'last'</span> );<br> x = <span class=graph>get</span>( last, <span class=quotes>'xdata'</span> );<br> y = <span class=graph>get</span>( last, <span class=quotes>'ydata'</span> );<br> <br> <span class=keyword>if</span> ~isempty(x)<br> [r c]= index( [ x(1) y(1) ] );<br> <br> cells = getappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span> );<br> cells{r,c} = [cells{r,c} last];<br> setappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span>, cells );<br> <span class=keyword>end</span><br><br><span class=defun_kw>function</span> <span class=defun_name>Dn</span>(<span class=defun_in>varargin</span>)<br> <span class=keyword>switch</span> <span class=graph>get</span>(<span class=graph>gcf</span>, <span class=quotes>'SelectionType'</span>) <span class=comment>% clicked mouse button</span><br> <span class=label>case</span> <span class=quotes>'normal'</span> <span class=comment>% left</span><br> setappdata(<span class=graph>gcf</span>, <span class=quotes>'last'</span>, [] );<br> <span class=graph>set</span>( <span class=graph>gcf</span>, <span class=quotes>'WindowButtonMotionFcn'</span>, <span class=quotes>'mpaper('</span><span class=quotes>'Plot'</span><span class=quotes>')'</span> );<br> <span class=graph>set</span>( <span class=graph>gcf</span>, <span class=quotes>'WindowButtonUpFcn'</span>, <span class=quotes>'mpaper('</span><span class=quotes>'Up'</span><span class=quotes>')'</span> );<br><br> Plot<br> <span class=label>case</span> <span class=quotes>'extend'</span> <span class=comment>% middle</span><br> <br> cells = getappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span> );<br> <span class=keyword>for</span> r = 1:5<br> <span class=keyword>for</span> c = 1:10<br> <span class=keyword>if</span>( ~isempty(cells{r,c}) )<br> normalize( ([r c]-1)/10+0.001 , [0.098 0.098], cells{r,c} );<br> <span class=keyword>end</span><br> <span class=keyword>end</span><br> <span class=keyword>end</span><br> <span class=keyword>if</span>(1)<br> options=getappdata( <span class=graph>gcf</span>, <span class=quotes>'options'</span>);<br> handles=findobj(<span class=graph>gca</span>, <span class=quotes>'tag'</span>, <span class=quotes>'brush_stoke'</span>); <br> bmp = plot2bmp( handles);<br> <span class=keyword>if</span> ~isempty(options.fun),<br> data.img_size = [options.height,options.width];<br> dim = prod(data.img_size);<br> data.X = zeros(dim,10*5);<br> <span class=keyword>for</span> j=1:5,<br> <span class=keyword>for</span> i=1:10,<br> xrange=(i-1)*options.width+1 : i*options.width;<br> yrange=(j-1)*options.height+1 : j*options.height;<br> x = reshape(bmp(yrange,xrange),dim,1);<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -