3 01 2022
2022- Görüntü İşleme Dersi Nesne Tespit Kodları
Mavi renkli nesnelerin resim üzerinden tespit edilmesi
clear;close all;clc
a=imread(‘renkler2.png’);
r=a(:,:,1);%kırmızı bant ayrıldı
g=a(:,:,2);%yeşil bant ayrıldı
b=a(:,:,3);%mavi bant ayrıldı
gri=rgb2gray(a);%resim gri seviye yapıldı
mavi=imsubtract(b,gri); %kırmızı banttan gri seviye çıkarılarak sadece kırmızı olanlar bulunuyor.
BW_mavi=mavi>50;
[etiketlenmisGoruntu, nesneSayisi]=bwlabel(BW_mavi);
fprintf(‘İmgedeki kırmızı renkli nesne sayısı=%d\n’,nesneSayisi);
nesneler=regionprops(BW_mavi,’Centroid’,’Area’,’BoundingBox’);
tablo=regionprops(‘table’,BW_mavi,’Centroid’,’Area’,’BoundingBox’)
[alan,indeks]=max(tablo.Area);
if indeks>0
figure;
subplot(121),imshow(a);
subplot(122),imshow(BW_mavi);
for i=1:length(nesneler)
rectangle(‘Position’,nesneler(i).BoundingBox,’EdgeColor’,’r’,’LineWidth’,2);
hold on
plot(nesneler(i).Centroid(1),nesneler(i).Centroid(2),’b*’, ‘LineWidth’,2);
end
end
Daire şeklindeki nesnelerin tespit edilmesi:
clear;close all;clc
a=imread(‘renklerSekiller1.png’);
nesne=rgb2gray(a);%resim gri seviye yapıldı
nesne_BW=nesne<230;
figure, imshow(nesne);
[etiketlenmisGoruntu, nesneSayisi]=bwlabel(nesne_BW);
fprintf(‘İmgedeki nesne sayısı=%d\n’,nesneSayisi);
nesneler=regionprops(nesne_BW,’Centroid’,’Area’,’BoundingBox’,’Circularity’);
tablo=regionprops(‘table’,nesne_BW,’Centroid’,’Area’,’Circularity’)
[alan,indeks]=max(tablo.Circularity);
if indeks>0
nesneMerkezX=nesneler(indeks).Centroid(1);
nesneMerkezY=nesneler(indeks).Centroid(2);
figure;
% subplot(121),imshow(a);
% subplot(122),
imshow(nesne_BW);
rectangle(‘Position’,nesneler(indeks).BoundingBox,’EdgeColor’,’r’,’LineWidth’,2);
hold on
plot(nesneler(indeks).Centroid(1),nesneler(indeks).Centroid(2),’b*’, ‘LineWidth’,2);
end
Canlı video üzerinden kırmızı nesnelerin tespit edilmesi:
%% Setup
clear;clc;close all;
% 2. webcam’a bağlanılıyor.
cam = webcam(2);
for frames = 1:300
% tek bir çerçeve alıyoruz
a = snapshot(cam);
gri=rgb2gray(a);
red=a(:,:,1);
kirmizi=imsubtract(red,gri);
kirmizi=kirmizi>30;
kirmizi=bwareaopen(kirmizi,1000);
kirmizi = imfill(kirmizi, ‘holes’);
kirmizi = imclearborder(kirmizi);
[etiketlenmisGoruntu, nesneSayisi]=bwlabel(kirmizi);
fprintf(‘İmgedeki mavi renkli nesne sayısı=%d\n’,nesneSayisi);
nesneler=regionprops(kirmizi,’Centroid’,’Area’,’BoundingBox’);
tablo=regionprops(‘table’,kirmizi,’Centroid’,’Area’,’BoundingBox’)
[alan,indeks]=max(tablo.Area);
if indeks>0
resimmerkezX=round(size(a,2))/2;
resimmerkezY=round(size(a,1))/2;
nesneMerkezX=nesneler(indeks).Centroid(1);
nesneMerkezY=nesneler(indeks).Centroid(2);
figure(1);
% subplot(121), imshow(a);
% subplot(122),
imshow(a);
rectangle(‘Position’,nesneler(indeks).BoundingBox,’EdgeColor’,’r’,’LineWidth’,2);
hold on
plot(nesneMerkezX,nesneMerkezY,’b*’);
plot(resimmerkezX,resimmerkezY,’r+’);
plot([resimmerkezX nesneMerkezX] ,[resimmerkezY,nesneMerkezY],’y’,’LineWidth’,2);
end
end
clear cam
Özel Elektrik Makinaları dersi ilk ödev teslimi Cumhurbaşkanlığı İnsan Kaynakları Ofisi Yetenek Kazanımı ve Organizasyonu