% 把所有的代码拷贝保存运行即可
function zd479599250
% 编写一个GUI的按钮读取一副图像,功能如下:
% 点击按钮,弹出对话框,然后从对话框中选取图片
% 创建绘图窗口,里面包括一个坐标系及一个按钮
axes('units','normal','pos',[.1 .3 .8 .6]);
uicontrol('style','push','units','normal','pos',[.4 .1 .2 .1],'str','Open...','call',@localOpenPic)
function localOpenPic(varargin)% 按钮的回调函数,首先让用户选择图像文件,打开并显示
% 图像文件类型(不完整,仅作示范)
filter = { ...
'*.bmp;*.jpg;*.gif;*.emf', '所有图像文件 (*.bmp; *.jpg; *.gif; *emf)'; ...
'*.bmp', '位图文件 (*.bmp)'; ...
'*.jpg', 'JPEG文件 (*.jpg)'; ...
'*.gif', 'GIF文件 (*.gif)'; ...
'*.emf', '图元文件 (*.emf)'; ...
'*.*', '所有文件 (*.*)' ...
};
% 选择文件
[filename, pathname] = uigetfile( filter, '打开...');
if isequal(filename,0) | isequal(pathname,0), return, end
% 读入图像并显示
[X, map] = imread([pathname filename]);
colormap(map)
image(X)
% 设置坐标系为适合显示图像的方式
axis image
set(gca, 'vis', 'off')
1,用windows画笔存储为单色位图
2,图片跟.m文件放到同一文件夹。假设文件名是my_im.bmp。
im=imread('my_im.bmp'); %读入图片
index=find(im==1); %找出图形中的“黑点”的坐标。该坐标是一维数据。
s=size(im); %读出图片大小
[y,x]=ind2sub(s,index); %转化成二维坐标。x是点的横坐标,y是点的纵坐标。
%------------------------
%import data是行不通的。你原来的图像是红、绿、蓝三个矩阵,读进来当然是3维的。即使你读进来是一个256*256的矩阵,你也学要通过find函数找出其中的点,然后再转换坐标。
这只是批量读入图像从matlab论坛找的,把a.m文件直接放在附件1文件夹里直接运行,调试通过
我觉得要用图像的字符识别,通过字符的结构进行度量
imname = dir('.*.bmp');%
im_num = length(imname);%
im_temp = imread(imname(1).name,'bmp');%
[height,width] = size(im_temp);%得到图像的尺寸
DB(:,:,a) = zeros(height,width,im_num,'uint8');
% 读入全部图像
for a = 1:length(imname)
DB(:,:,a) = imread(imname(a).name,'bmp');%读取图像数据
end
批量读入图片
用cat函数连接;
每个纸条的边界
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
灰度值就是0 255,你要二值化数也行用 im2bw
请采纳我的答案!
我的代码是调试通过的
是否可以解决您的问题?
以上是如何在Matlab GUI中编写一个能够读取图像的按钮的详细内容。更多信息请关注PHP中文网其他相关文章!