Electronic Projects, forums and more.

Go Back   Electronic Circuits Projects Diagrams Free > Electronics Forums > Electronic Projects Design/Ideas/Reviews


Electronic Projects Design/Ideas/Reviews Are you building an electronic project or want to? Maybe you need some assistance? Come and submit your electronic questions here and let our experienced members find a solution.

Reply
 
Thread Tools Display Modes
Old 16th March 2004, 05:20 PM   (permalink)
Default Divide by zero warning

Hi guys, I run my codes but got this divide by zero error... The
expected result should be 3 sets of mu and sigmas value. I don't
understand why I would have got this error...
Please HELP

Below are the codes:

stframe = 1; endframe = 5;
noframes = endframe - stframe + 1;
ImgHeight = 480; ImgWidth = 720;
J = zeros(480,720,noframes);
cnt = 1;
for i = stframe:endframe
fname = sprintf('%.9d.bmp',i);
I = imread(fname,'bmp');
Igray = rgb2gray(I);
J(:,:,cnt) = Igray;
cnt = cnt + 1;
end
M = 3;
bg_mu = zeros(ImgHeight,ImgWidth,M);
bg_sigma = zeros(ImgHeight,ImgWidth,M);
for row = 1:ImgHeight
for col = 1:ImgWidth
data = J(row,col,;
data = data(;
data1 = [data data];
[h, mu, sigmas, P] = em(M, data1);
mu = mu(:,1); sigmas = sigmas(:,1);
bg_mu(row,col, = mu(;
bg_sigma(row,col, = sigmas(;
end
end

function [h, mu, sigmas, P] = em(M, Y);
maxEpoch = 10; [T,D] = size(Y);
h = ones(T,M)/M; P = ones(M,1)/M;
for j=1:M,
k = 0;
while (k < 1) | (k > T)
k = round(rand(1)*T);
end
mu(j,1) = Y(k,1);
sigmas(j,1) = ones(1,D);
end

for epoch=1:maxEpoch,
for t=1:T,
for k=1:M,
g(k)=Gaussian(Y(t,,mu(k,,sigmas(k,);
sigmas
end
s0 = sum(g);
for j=1:M,
h(t,j) = g(j)/s0;
end
end
for j=1:M,
for i=1,
s1=0; s2=0; s3=0;
for t=1:T,
s1 = s1 + h(t,j)*Y(t,i);
s2 = s2 + h(t,j);
end
mu(j,i) = s1/s2;
P(j) = s2/T;
s3=0;
for t=1:T,
s3 = s3 + h(t,j)*(Y(t,i)-mu(j,i))^2;
end
sigmas(j,i) = s3/s2;
end
end
end

function y = Gaussian(x, mu, Sigma2);
r2 = ((double(x(1)) - mu(1))^2)/(Sigma2(1)) + ((double(x(2)) -
mu(2))^2)/(Sigma2(2));
y2 = exp(- r2)/(2. * 3.1416 * sqrt(Sigma2(1) * Sigma2(2)));
y = y2;
scout_54 is offline  
Reply With Quote
Old 16th March 2004, 07:21 PM   (permalink)
Default

I have no idea what any of that means

but, I would suggest disabling smilies in that kind of post, because certain character combinations produce smilies, rendering the code quite unreadable (or at the least, incomprihensible)

Tim
grrr_arrghh is offline  
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes




All times are GMT. The time now is 10:19 PM.


Electronic Circuits  |  Electronics Wiki
Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.