Rumah >tutorial komputer >pengetahuan komputer >Bagaimana untuk menulis butang dalam GUI Matlab yang boleh membaca imej
% Hanya salin semua kod, simpan dan jalankan
fungsi zd479599250
% Tulis butang GUI untuk membaca imej, fungsinya adalah seperti berikut:
% Klik butang untuk muncul kotak dialog, kemudian pilih gambar daripada kotak dialog
% Buat tetingkap lukisan, yang termasuk sistem koordinat dan butang
paksi('unit', 'normal', 'pos',[.1 .3 .8 .6]);
uicontrol('style','push','units','normal','pos',[.4 .1 .2 .1],'str','Open...','call',@ localOpenPic)
fungsi localOpenPic(varargin)% Fungsi panggil balik butang, mula-mula benarkan pengguna memilih fail imej, buka dan paparkannya
% Jenis fail imej (tidak lengkap, untuk demonstrasi sahaja)
penapis = { ...
'*.bmp;*.jpg;*.gif;*.emf', 'Semua fail imej (*.bmp; *.jpg; *.gif; *emf)'; ...
'*.bmp', 'Fail bitmap (*.bmp)'; ...
'*.jpg', 'Fail JPEG (*.jpg)'; ...
'*.gif', 'fail GIF (*.gif)'; ...
'*.emf', 'Metafile (*.emf)'; ...
'*.*', 'Semua fail (*.*)' ...
};
% Pilih fail
[nama fail, nama laluan] = uigetfile(penapis, 'Buka...');
jika sama(nama fail,0) |.sesama(nama laluan,0), kembali, tamat
% Baca imej dan paparkannya
[X, peta] = imread([nama fail nama laluan]);
peta warna(peta)
imej(X)
% Tetapkan sistem koordinat kepada cara yang sesuai untuk memaparkan imej
imej paksi
set(gca, 'vis', 'off')
1, gunakan Windows Paintbrush untuk menyimpan sebagai peta bit monokrom
2 Letakkan gambar dan fail .m dalam folder yang sama. Andaikan nama fail ialah my_im.bmp.
im=imread('my_im.bmp'); %Baca gambar
index=find(im==1); %Cari koordinat "titik hitam" dalam graf. Koordinat adalah data satu dimensi.
s=size(im); % baca saiz imej
[y,x]=ind2sub(s,index); %Tukar kepada koordinat dua dimensi. x ialah absis titik, dan y ialah ordinat bagi titik itu.
%------------------------
%import data tidak berfungsi. Imej asal anda terdiri daripada tiga matriks merah, hijau dan biru Sudah tentu, ia adalah 3 dimensi apabila dibaca. Walaupun anda membaca dalam matriks 256*256, anda masih perlu mencari titik di dalamnya melalui fungsi cari, dan kemudian menukar koordinat.
Ini hanyalah bacaan kumpulan imej yang ditemui dari forum matlab Letakkan fail a.m terus dalam folder lampiran 1 dan jalankan terus penyahpepijatan
Saya rasa kita perlu menggunakan pengecaman aksara imej dan mengukurnya melalui struktur wataknama = dir('.*.bmp');%
im_num = panjang(imname);%
im_temp = imread(imname(1).name,'bmp');%
[tinggi,lebar] = saiz(im_temp);% dapatkan saiz imej
DB(:,:,a) = sifar(tinggi,lebar,im_num,'uint8');
% Baca semua imej
untuk a = 1:panjang(nama)
DB(:,:,a) = imread(imname(a).name,'bmp');%Baca data imej
akhir
Baca gambar secara berkelompok
Sambung menggunakan fungsi kucing;
Sempadan setiap nota
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
Nilai kelabu ialah 0 255. Kalau nak binarize nombor, boleh guna im2bw
Sila terima jawapan saya!
Kod saya lulus penyahpepijatan
Bolehkah ini menyelesaikan masalah anda?
Atas ialah kandungan terperinci Bagaimana untuk menulis butang dalam GUI Matlab yang boleh membaca imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!