Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Matlab-digitalna obrada slike

[es] :: Ostali programski jezici :: Matlab-digitalna obrada slike

[ Pregleda: 1787 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
178.237.208.*



+2 Profil

icon Matlab-digitalna obrada slike27.05.2013. u 14:12 - pre 81 meseci
Postovani radim na fakultetu jedan seminarski rad digitalnu obradu slike, potrebna mi je pomoc..Treba da napisem algoritam bez koriscenja funkcija u matlabu koji ce da broji objekte na slici i koji ce ispitivati koji piksel pripada objektu.Imam jedan kod ako moze pojasnjenje kod njega.

Code:

function G=labeling(E)
[M,N]=size(E);
G=zeros(M,N);
spoc=sum(sum(G));
tek=1;
for m=1:M
    for n=1:N
      if(E(m,n))
          G(m,n)=tek;
          tek=tek+1;
      end
    end
end
while stek>spoc
    spoc=stek;
    G=max(max(G,[zeros(M,1),G(:,1:M-1)]), [G(:,2:N),zeros(M,1)]).*E;
    G=max(max(G,[zeros(1,N);G(1:M-1,:)]), [G(2:M,:);zeros(1,N)]).*E;
    stek=sum(sum(G));
end



Kada ucitam sliku i iskoristim ovaj deo koda javla mi grsku


function G=labeling(E)


A znam da deo funkcije vrsi maksimiziranje labela iz susedstva samo za tačke koje pripadaju objektima, kako na osnovu ovoga prebrojati objekte.
Code:

 G=max(max(G,[zeros(M,1),G(:,1:M-1)]), [G(:,2:N),zeros(M,1)]).*E;
    G=max(max(G,[zeros(1,N);G(1:M-1,:)]), [G(2:M,:);zeros(1,N)]).*E;


Matlab u sustini koristim da bi mi rezultat bio prikazan slikovito, zbog toga treba da izbegavam funkcije iz matlaba, taj algoritam koji budem napisao treba da prebacim u C jezik posto tu sliku posle smestam na mikrokontroler, sintaksa ce se razlikovati.

Hvala unapred
 
Odgovor na temu

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
178.237.208.*



+2 Profil

icon Re: Matlab-digitalna obrada slike29.05.2013. u 21:26 - pre 81 meseci
Uspeo sam preko vec postojecih funkcija u matlabu da prebrojim objekte na sledeci nacin:

Code:

img1=imread('zamk.png');
imshow(img1)

img1=rgb2gray(img1);
imshow(img1)

img2=im2bw(img1,graythresh(img1));
imshow(img2)

img2=~img2;
imshow(img2)

B = bwboundaries(img2);
imshow(img2)
text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))
hold on

for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)
end

mozda ce nekome znaciti..Zna li mozda neko kako prebrojati objekte na slici u C jeziku..Ideja je da gledam koji su pikseli, kada stignem do crnog piksela on gleda svoje susede i ukoliko ih nema koji su crni to je jedan objekat..I tako ide redom..Upitanju je binarna slika..
 
Odgovor na temu

[es] :: Ostali programski jezici :: Matlab-digitalna obrada slike

[ Pregleda: 1787 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.