Rumah > Artikel > tutorial komputer > Pemprosesan blok imej menggunakan MATLAB
Mula-mula izinkan saya menerangkan ralat: blok imej 64*64 (setiap blok ialah 4*4) hendaklah 256 blok, bukan 16 blok.
Berikut ialah programnya
Andaikan A ialah matriks imej 64*64
B=mat2sel(A,4*satu(1,16),4*satu(1,16));
B=reshape(cat(3,B{:}),16,[]);%B ialah matriks yang dikehendaki, 16 baris dan 256 lajur
%Berikut adalah arahan
%Hubungan anggaran adalah seperti ini, dengan andaian A=
%A1 A17 … A241
%A2 A18 … A242
%∶ ∶ ∶
%A16 A19 … A256
% (Setiap Ai di sini adalah blok matriks 4*4)
%Kemudian B=
%B1 B2 B3 … B256
%Setiap Bi ialah vektor lajur 16*1 sepadan dengan Ai
%
% bermakna andaikan Ai=
%a1 a5 a9 a13
%a2 a6 a10 a14
%a3 a7 a11 a15
%a4 a8 a12 a16
%
% Kemudian Bi=
%a1
%a2
%∶
%a16
Cara membahagikan matriks kepada beberapa matriks dengan dimensi yang sama dalam MATLAB:
Gunakan fungsi reshape: Masukkan: doc reshape dalam tetingkap arahan.
Pengenalan MATLAB:
MATLAB ialah perisian matematik komersial yang dihasilkan oleh syarikat American MathWorks Ia adalah bahasa pengkomputeran teknikal termaju dan persekitaran interaktif yang digunakan untuk pembangunan algoritma, visualisasi data, analisis data dan pengiraan berangka.
MATLAB ialah gabungan dua perkataan matrix&laboratory, yang bermaksud kilang matriks (makmal matriks). Ia adalah persekitaran pengkomputeran berteknologi tinggi yang dikeluarkan oleh syarikat mathworks Amerika terutamanya untuk pengkomputeran saintifik, visualisasi dan pengaturcaraan interaktif. Ia menyepadukan banyak fungsi berkuasa seperti analisis berangka, pengiraan matriks, visualisasi data saintifik, dan pemodelan dan simulasi sistem dinamik tak linear dalam persekitaran tetingkap yang mudah digunakan, menyediakan penyelidikan saintifik, reka bentuk kejuruteraan dan banyak bidang saintifik yang mesti dijalankan. pengiraan berangka yang berkesan. Medan ini menyediakan penyelesaian yang komprehensif dan sebahagian besarnya memisahkan diri daripada mod penyuntingan bahasa pengaturcaraan bukan interaktif tradisional (seperti C dan Fortran), yang mewakili tahap lanjutan perisian pengkomputeran saintifik antarabangsa hari ini.
% Andaikan bahawa matriks asal anda wujud dalam pembolehubah dalam
a=nchoosek(1:20,16);% menjana 20 kombinasi berbeza daripada 16, akan ada 4845 jenis, dan mengembalikan matriks 4845x16
bilangan=saiz(a,1);%num=4845
pilih=benar(nombor,1);
untuk ii=1:bilangan
temp=in(a(ii,:),:);% ambil gabungan baris ii untuk membentuk matriks temp kuasa dua
d=det(temp);% hitung penentu
jika d==0 % Jika ralat pemangkasan dimasukkan dalam pengiraan, ia boleh dinilai dengan syarat abs(d) pilih(ii)=salah; % menandakan gabungan yang penentunya ialah 0 akhir akhir chooseout=a(choose,:);%chooseout ialah matriks nx16, n ialah bilangan matriks yang memenuhi syarat % boleh digunakan out=in(chooseout(n,:),:) untuk mendapatkan matriks ke-n yang memenuhi syarat
Atas ialah kandungan terperinci Pemprosesan blok imej menggunakan MATLAB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!