Merhaba, bildiğiniz gibi basit işlemlerle harikalar yaratabileceğiniz bir programlama dilidir. Matematik, elektronik, yapay zeka, görüntü işleme gibi bir çok farklı alanda rahatlıkla kullanılabilir. Matlab konusu bir umman olduğu için bu kadar bilgi yeterli 🙂 Detaylı bilgi edinmek isteyenler için aşağıdaki linklerde yeterince bilgi mevcut. Konumuza gelecek olursak ben aşağıdaki örneklerde basit görüntü filtreleme işlemleri yaparak en azından sizlere dilin pratikliğiyle ilgili bir fikir vermek istedim.
Orijinal fotoğraf |
Tuz & Biber Filtreli image=('C:\norvec.jpg'); I = imread(image); J = imnoise(I,'salt & pepper',0.02); figure, imshow(I) figure, imshow(J)
|
Tuz & Biber Filtreli Üzerine Mean Filtreli image=imread('C:\norvec.jpg'); gurultulu = imnoise(image,'salt & pepper',0.02); figure, imshow(gurultulu) meanFilter = fspecial('average', [3 3]); sonucGoster = imfilter(gurultulu, meanFilter); figure,imshow(sonucGoster);
|
Tuz & Biber Filtreli Üzerine Median Filtreli image=imread('C:\norvec.jpg'); gurultuluRGB = imnoise(image,'salt & pepper',0.02); figure, imshow(gurultuluRGB) % Matlab üzerindeki median filtresi RGB imajlara uygulamadığından önce % kanallara bölüyoruz kirmiziKanal = gurultuluRGB(:, :, 1); yesilKanal = gurultuluRGB(:, :, 2); maviKanal = gurultuluRGB(:, :, 3); % her kanala ayrı ayrı median filtresini uyguluyoruz kirmiziMF = medfilt2(kirmiziKanal, [3 3]); yesilMF = medfilt2(yesilKanal, [3 3]); blueMF = medfilt2(maviKanal, [3 3]); noiseImage = (kirmiziKanal == 0 | kirmiziKanal == 255); gurultusuzRed = kirmiziKanal; gurultusuzRed(noiseImage) = kirmiziMF(noiseImage); noiseImage = (yesilKanal == 0 | yesilKanal == 255); gurultusuzGreen = yesilKanal; gurultusuzGreen(noiseImage) = yesilMF(noiseImage); noiseImage = (maviKanal == 0 | maviKanal == 255); gurultusuzBlue = maviKanal; gurultusuzBlue(noiseImage) = blueMF(noiseImage); % Her kanalına ayrı ayrı median filtresi uyguladık burada tüm kanalları % birleştiriyoruz rgbBirlestir = cat(3, gurultusuzRed, gurultusuzGreen, gurultusuzBlue); figure,imshow(rgbBirlestir);
|
Sobel Kenar Bulma Not: Tüm yönlere olduğundan hem Matlab içerisindeki Sobel filtresi hem de kernel matrislerinin kareleri toplamının karekökü metodu uygulanmış ve karşılaştırılmıştır.
resim=imread('c:/norvec.jpg'); sobel=rgb2gray(resim); sobelli=edge(sobel,'sobel'); A=double(sobel); for i=1:size(A,1)-2 for j=1:size(A,2)-2 %Yatay sobel kernel matrisi Gx=((2*A(i+2,j+1)+A(i+2,j)+A(i+2,j+2))-(2*A(i,j+1)+A(i,j)+A(i,j+2))); %Dikey sobel kernel matrisi Gy=((2*A(i+1,j+2)+A(i,j+2)+A(i+2,j+2))-(2*A(i+1,j)+A(i,j)+A(i+2,j))); sobel(i,j)=sqrt(Gx.^2+Gy.^2); end end figure;imshow(sobelli); figure,imshow(sobel);
|
Negatif Hali image=imread('C:\norvec.jpg'); J = imcomplement(image); imshow(image), figure, imshow(J)
|
Bağlantılar:
https://www.mathworks.com/
https://medium.com/@halilozel1903/matlab-nedir-91a904a74f45
http://www.gokhanhizal.com/matlab-program-ornekleri/
Merhaba, renkli resimler için medfilt3 kullanamaz mıyız? Yardımcı olur musunuz?
medfilt3, 3 boyutlu görüntüler için uygulanan median filtreleme komutudur. Her ne kadar RGB görüntü 3 kanala sahip olsa da, burada dikkat edilmesi gereken her bir renk kanalının bağımsız olarak sahip olduğu boyut sayısıdır.
MERHABALAR;
PREWİTT FİLTRESİNİNİN KODLARINI YAZAR MISINIZ ACABA
TESEKKURLER…
Merhaba,
Matlab’in kenar bulma amaçlı built-in fonksiyonu olan edge() fonksiyonunda Prewitt seçeneğini kullanabilirsin.
Şu şekilde örnek verebilirim;
resim=imread(‘c:/image.jpg’);
im=rgb2gray(resim);
bwPrewitt = edge(im, ‘Prewitt’);
figure,imshow(resim);
figure,imshow(bwPrewitt);
resimdeki bir nesneyi kamufle etmek için hangi filtreyi kullanıyoruz yardımcı olur musunuz?
Merhaba, biraz daha detay verebilirseniz yardımcı olabilirim. Resim üzerindeki herhangi bir nesnenin üzerini herhangi bir renk ya da dokuyla kapatmak mı istiyorsunuz?