Home >Computer Tutorials >Computer Knowledge >How to write a button in Matlab GUI that can read images
% Just copy all the code, save it and run it
function zd479599250
% Write a GUI button to read an image, the function is as follows:
% Click the button to pop up the dialog box, then select the picture from the dialog box
% Create a drawing window, which includes a coordinate system and a button
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)% The callback function of the button, first let the user select the image file, open and display it
% Image file type (incomplete, for demonstration only)
filter = { ...
'*.bmp;*.jpg;*.gif;*.emf', 'All image files (*.bmp; *.jpg; *.gif; *emf)'; ...
'*.bmp', 'Bitmap file (*.bmp)'; ...
'*.jpg', 'JPEG file (*.jpg)'; ...
'*.gif', 'GIF file (*.gif)'; ...
'*.emf', 'Metafile (*.emf)'; ...
'*.*', 'All files (*.*)' ...
};
% Select a document
[filename, pathname] = uigetfile(filter, 'Open...');
if isequal(filename,0) | isequal(pathname,0), return, end
% Read the image and display
[X, map] = imread([pathname filename]);
colormap(map)
image(X)
% Set the coordinate system to a suitable way to display the image
axis image
set(gca, 'vis', 'off')
1, use Windows Paintbrush to store as a monochrome bitmap
2. Put the pictures and .m files in the same folder. Assume the file name is my_im.bmp.
im=imread('my_im.bmp'); %Read the picture
index=find(im==1); %Find the coordinates of the "black point" in the graph. The coordinates are one-dimensional data.
s=size(im); %Read the image size
[y,x]=ind2sub(s,index); %Convert to two-dimensional coordinates. x is the abscissa of the point, y is the ordinate of the point.
%------------------------
%import data does not work. Your original image consists of three matrices of red, green, and blue. Of course, it is 3-dimensional when read. Even if you read in a 256*256 matrix, you still need to find the points in it through the find function, and then convert the coordinates.
This is just batch reading of images from the matlab forum. Put the a.m file directly in the attachment 1 folder and run it directly. The debugging passes
I think we need to use image character recognition and measure it through the structure of the characters
imname = dir('.\*.bmp');%
im_num = length(imname);%
im_temp = imread(imname(1).name,'bmp');%
[height,width] = size(im_temp);%Get the size of the image
DB(:,:,a) = zeros(height,width,im_num,'uint8');
% Read all images
for a = 1:length(imname)
DB(:,:,a) = imread(imname(a).name,'bmp');%Read image data
end
Read pictures in batches
Connect using cat function;
Border of each note
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
The gray value is 0 255. If you want to binarize the number, you can use im2bw
Please accept my answer!
My code passed debugging
Can this solve your problem?
The above is the detailed content of How to write a button in Matlab GUI that can read images. For more information, please follow other related articles on the PHP Chinese website!