Laboratorium 2 Program

clear all

clc

% Wczytanie obrazu, filtracja, binaryzacja, segmentacja

img = imread('pn10_Matlab_lab2_Bubak.jpg');

se = strel('disk',5);

img = imopen(img,se);

gray = rgb2gray(img);

figure(1), imshow(gray);

bw = (gray>=0 & gray<=90);

% figure(2), imshow(bw);

[L, num] = bwlabel(bw,8);

% imtool(L);

bw_1 = ismember(L,715);

bw_2 = ismember(L,461);

bw_3 = ismember(L,498);

bw_4 = ismember(L,303);

bw1 = bw;

for i=1:10

bw1 = imdilate(bw1,se);

end

for i=1:10

bw1 = imerode(bw1,se);

end

[L, num] = bwlabel(bw1,8);

% imtool(L);

bw1_1 = ismember(L,10);

bw2 = (gray<=110 | gray>=170);

% figure(3), imshow(bw2);

bw3 = bw2;

for i=1:10

bw3 = imdilate(bw3,se);

end

for i=1:10

bw3 = imerode(bw3,se);

end

[L,num] = bwlabel(bw3,8);

% imtool(L);

bw3_1 = ismember(L,8);

bw3_2 = ismember(L,18);

% figure(4), imshow(bw3);

bw4 = (gray<=30);

% figure(5), imshow(bw4);

bw5 = bw4;

for i=1:4

bw5 = imdilate(bw5,se);

end

for i=1:4

bw5 = imerode(bw5,se);

end

[L, num] = bwlabel(bw5,8);

% imtool(L);

bw5_1 = ismember(L,1);

bw5_2 = ismember(L,183);

bw5_3 = ismember(L,264);

% figure(6), imshow(bw5);

bw22 = imdilate(bw2,se);

bw22 = imdilate(bw22,se);

bw22 = imerode(bw22,se);

bw22 = imerode(bw22,se);

[L,num] = bwlabel(bw22,8);

% imtool(L);

bw22_1 = ismember(L,299);

% figure(7), imshow(bw22);

% Suma wszystkich wyodrębnionych obiektów

bw_ost = bw_1 + bw_2 + bw_3 + bw_4 + bw1_1 + bw5_1 + bw5_2 + bw5_3 + bw3_1 + bw3_2 + bw22_1;

figure(8), imshow(bw_ost);

% Wybranie cech obrazu oraz prezentacja położenia, orientacji,

% prostokąta opisanego

[L,num] = bwlabel(bw_ost,8);

feats = regionprops(L,'All');

% Położenie

figure(9)

hold on

h1 = imshow(L);

r1 = 100;

r2 = 300;

for i=1:size(feats)

h1 = line(feats(i).Centroid(1),feats(i).Centroid(2),'Marker','.','MarkerEdgeColor','r');

end

hold off

% Orientacja

figure(10)

hold on

h2 = imshow(L);

for i=1:size(feats)

h2 = line([feats(i).Centroid(1),feats(i).Centroid(1)+r2*cos(feats(i).Orientation*(pi/180))

],[feats(i).Centroid(2),feats(i).Centroid(2)+r2*sin(feats(i).Orientation*(pi/180))]);

end

hold off

% Njmniejszy prostokąt

figure(11)

hold on

h3 = imshow(L);

for i=1:size(feats)

h3 = rectangle('position',[feats(i).BoundingBox(1),feats(i).BoundingBox(2),feats(i).BoundingBox(3),feats(i).BoundingBox(4)],'EdgeColor','r');

end

hold off

% Wyliczenie charakterystyk

for i=1:size(feats)

%%form_factor

Char(i,1) = 4*pi*feats(i).Area / feats(i).Perimeter^2;

%%roundness

Char(i,2) = 4*feats(i).Area / (pi*feats(i).MajorAxisLength^2);

%%acpect_ratio

Char(i,3) = feats(i).MajorAxisLength / feats(i).MinorAxisLength;

%%solidity

Char(i,4) = feats(i).Solidity;

%%compactness

Char(i,5) = sqrt(4*feats(i).Area/pi) / feats(i).MajorAxisLength;

end

Char


Wyszukiwarka

Podobne podstrony:
Projekt Inż, Wstęp, Laboratorium programowania niskopoziomowego
GiG-laboratorium-program, IV semestr moje, elektrotechnika, Nowy folder
laboratorium 1 program
Laboratorium 1 programowanie w VBA
Laboratorium 2 programowanie w VBA
Laboratorium 3 programowanie w VBA
Laboratorium 4 programowanie w VBA
Laboratorium programowania w C
Program zajęć ED, aaa, studia 22.10.2014, Materiały od Piotra cukrownika, materialy Kamil, Szkoła, L
Laboratorium Podstaw Programowania 2
PROGRAM laboratoriów z Ekologii i ochrony przyrody na semestr zimowy 14 15
!Program ćwiczeń laboratoryjnych 2012id 602
Program Laboratorium Komputerowe systemy pomiarowe Gawędzki KSP
Fizyka 14b, AGH, agh, programinski, Laborki, Laborki, Lab, FIZYKA - Laboratorium, fiz lab, franko
Polarymetr Laurenta, AGH, agh, programinski, Laborki, Laborki, Lab, FIZYKA - Laboratorium, Polarymet
Program ćwiczeń laboratoryjnych

więcej podobnych podstron