02
Kas
2023

Dijital görüntü çözümleme dersi Matlab kodları

02.11.2023 derste yazılan bazı kodlar

Tekrar tekrar jpg sıkıştırma

clear,clc;
J = imread('lenacolor.jpg');
imwrite(J, '1.jpg');
I = J;
figure; subplot(1,2,1);imshow(J);
for i=1:100
    I=imread('1.jpg');
    imwrite(I, '1.jpg', 'Quality',10);
end
subplot(1,2,2);imshow(I);

Gradyan oluşturma

I = zeros(256,256);
I = uint8(I);
for i=0:255
    I(:,i+1) = i;
end
I = imresize(I, 2);
imshow(I);

J= imread('lenaGS.jpg');
imshow(J+I);

Yeniden boyutlandırma

I = imread('lenags.jpg');
subplot(1,2,1);imshow(I);
I = imresize(I, 1/16);
I = imresize(I, 16);
subplot(1,2,2);imshow(I);

sum(sum(I == J))

Parça kesme

I = imread('cameraman.jpg');
Parca = I(100:299, 200:499);
Parca = imresize(Parca, [512 512]);
imwrite(Parca, 'ders.jpg');
subplot(1,2,1);imshow(I);title('orj');
subplot(1,2,2);imshow(Parca);title('kesilen parça');

16.11.2023 derste yazılan bazı kodlar

Ortalama filtresi

I = imread('lenags.jpg');
K = I;
filtre = [-0.5 0.2 0.3; 0.1 0.6 0.09; 1 -0.4 0.3]

for i=2:511
    for j = 2:511
       K(i,j) = uint8(sum(sum(double(I(i-1:i+1, j-1:j+1)).*filtre)));
    end
end
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(K);

Laplacian HPF

I = imread('cameraman.jpg');
filtrem = fspecial('laplacian');
I = (uint8(filter2(filtrem,I)));
imshow(I);

Gauss Filtresi

50×50 boyutunda, standart sapması 3 olan Gauss filtresi

clc,clear
I = imread('cameraman.jpg');
a = 50;s = 3;
filtre = fspecial('gaussian', [a a],s);
subplot(1,2,1),surf(1:a,1:a,filtre);
subplot(1,2,2), imshow(uint8(filter2(filtre,I)));

Salt&Pepper gürültüsü ve Average filtresi

I = imread('lenags.jpg');
subplot(1,3,1);imshow(I);
I = imnoise(I,'salt & pepper');
subplot(1,3,2);imshow(I);
filtrem = fspecial('average');
I = uint8(filter2(filtrem,I));
subplot(1,3,3);imshow(I);

Prewitt maskesi ile kenar tespiti

Px = [-1 0 1;-1 0 1;-1 0 1 ];
I = uint8(filter2(Px,I));
subplot(1,2,1);imshow(I);
Py = [-1 -1 -1;0 0 0;1 1 1 ];
I = uint8(filter2(Py,I));
subplot(1,2,2);imshow(I);

zeros fonksiyonu ile RGB görüntü oluşturma

I = zeros(512,512,3);
I = uint8(I);
I(40:80,40:80,1) = 255;
I(100:150,80:120,2) = 255;
I(200:250,200:300,3) = 255;
imshow(I);

3 matrisi birleştirerek görüntü oluşturma

R = uint8(zeros(512));
G = uint8(zeros(512));
B = uint8(zeros(512));
B = B+200;
resim = cat(3,R,G,B);
imshow(resim);

RGB-HSV arası dönüşüm

I = imread('baboon.png');
subplot(1,3,1);imshow(I);
K = rgb2hsv(I);
subplot(1,3,2);imshow(K);
L = hsv2rgb(K);
subplot(1,3,3);imshow(L);

HSV uzayındaki görüntüde mavi renkli alanı seçme

I = imread('baboon.png');
subplot(1,2,1);imshow(I);

I = rgb2hsv(I);
K = (I(:,:,1)>0.5) & (I(:,:,1)<0.83);
subplot(1,2,2);imshow(K);

Renkli görüntünün tüm katmanlarında histogram eşitleme

I = imread('lenacolor.jpg');
subplot(1,3,1);imshow(I);
subplot(1,3,2);imshow(histeq(I));

R = I(:,:,1); R = histeq(R); 
G = I(:,:,2); G = histeq(G); 
B = I(:,:,3); B = histeq(B); 

subplot(1,3,3);imshow(cat(3,R,G,B));

Renkli görüntünün tüm katmanlarında gürültüden kurtulmak için medyan filtresi

clear;clc;
I = imread('lenacolor.jpg');
I = imnoise(I, 'salt & pepper');
subplot(1,2,1);imshow(I);
R = I(:,:,1); R = medfilt2(R); 
G = I(:,:,2); G = medfilt2(G); 
B = I(:,:,3); B = medfilt2(B); 
subplot(1,2,2);imshow(cat(3,R,G,B));

Renkli görüntüde katman katman kenar tespiti

clear;clc;
I = imread('lenacolor.jpg');
subplot(1,2,1);imshow(edge(im2gray(I),'sobel'));

R = I(:,:,1); Rr = edge(R,'sobel');
G = I(:,:,2); Rg = edge(G,'sobel');
B = I(:,:,3); Rb = edge(B,'sobel');

sonuc = (Rr|Rg|Rb)
subplot(1,2,2);imshow(sonuc);

Görüntüde erozyon ve genişleme

I = imread('lenacolor.jpg');
se = strel('disk',5);

Ier = imerode(I,se);
Idi = imdilate(Ier,se);

subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(Idi);

Görüntüde morfolojik açılma sonrası renk bölgesi seçimi

I = imread('baboon.png');
subplot(121);imshow(I);
se = strel('disk',25);
Idi = imopen(I,se);

Ihsv = rgb2hsv(Idi);
K = (Ihsv(:,:,1)>0.5) & (Ihsv(:,:,1)<0.83);
subplot(122);imshow(im2double(I).*K);

Görüntü segmentasyonu

I = imread('coins.jpeg');
Ibw = im2bw(I);
subplot(221);imshow(Ibw);

mk = 255-uint8(bwdist(~Ibw));
subplot(222);imshow(mk);

g = watershed(mk); % Su havzası algoritması
abs = g == 0;
subplot(223);
imshow(labeloverlay(double(Ibw),double(abs),'Colormap',[1 1 0], 'Transparency',0));
title('Segmentlere ayrıldı');

subplot(224);
imshow(label2rgb(g));
title('Renklendirilmiş');

Plaka okuma

I = imread('carplate1.jpeg');
%K = I(100:300, 500:1100);
K = I;
se = strel('Ball',3,1);
K = imopen(K,se);
imshow(K)
metin = ocr(K);

Yüz tespiti

clear; clc;
I = imread('lenacolor.jpg');
Yuz = vision.CascadeObjectDetector(); % Yüz tanımlayıcı yapı oluştur
YuzunKonumu = step(Yuz,I); % Yüzün konumunu ver
BulunanYuz = insertShape(I, 'Rectangle', YuzunKonumu);
imshow(BulunanYuz);