% 把所有的程式碼拷貝保存運行即可
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中文網其他相關文章!