Množenjem slike sa matricom u Matlab

I

IndiJones

Guest
Imam sliku 24 bit RGB (BMP), koji ima 1024X1280X3 piksela te je od
uint8 tip (Matlab se pokazuje prilikom učitavanja slike koristeći 'imread').Ja
željeli biste ga pomnožiti sa 3x3 matricom vidjeti kako slika
promjena.Kada sam to učiniti koristeći sljedeće naredba:

SLIKA2 = Matrix * SLIKA1;

JA dobiti ova poruka:

"? Greška: ==> mtimes
Cijeli brojevi mogu biti samo u kombinaciji sa cijelih brojeva iz iste klase, ili
skalar parovima. "

Tada sam se pretvaraju u bračni SLIKA1 koristeći:

DoubleImage = imdouble (SLIKA1);

A onda je pokušao učiniti množenja još jednom:

SLIKA2 = Matrix1 * DoubleImage;

Ovaj put sam dobio ovaj greška:

"? Greška: ==> mtimes
Ulazni argumenti mora biti 2-D ".

Mogao bilo tko molim recite mene kako am JA idući u obaviti množenja
a zatim oblik slike izlaz za gledanje.

Thanks in advance!

 
Mislim da je potrebno dodatno razjasniti problem.Svaki piksel neke RGB
ravnine slike mora biti pomnožen Matrix1.Na primjer,
prvi piksel svake od tri ravnine R1, G1 & B1 prvi bit će
pomnožen Matrix1, zatim R2, G2 & B2 će se multiplicirati i tako dalje.
Na taj način Internet bi trebao biti 3x3 matrica pomnožena s drugom 3X1 matrice kao
slijedi:

Prvi piksela nove slike (recimo XYZ)

[X1 Y1 Z1] = [M11 M12 M13, M21 M22 M23, M31 m32 M33] * [R1 G1 B1];
.
.
.
[Xn yn Zn] = [M11 M12 M13, M21 M22 M23, M31 m32 M33] * [Rn Post bn];

Konačno slike izlaz XYZ će imati piksela vrijednosti X1, .., Xn za
X plane, Y1, .., yn za Y avion i Z1, .., Zn za Z avion
i pokazati konačne slike.

 
Ako sam ispravno razumjeti, te pokušati filtrirati izvornu sliku
3x3 sa maskom?Ako je tako, koristite new_pic (m) = conv2 (maska, your_pic :),:, m))

gdje je m = 1,2,3 kao i za R, G i B

spremiti svaki 2-D slika (R, G i B) i kombinirati ih na 3-D niz.

Sretno,
P.

 

Welcome to EDABoard.com

Sponsor

Back
Top