Live Video processing and analysing

17 Ansichten (letzte 30 Tage)
Baiju EP
Baiju EP am 1 Jan. 2016
Bearbeitet: Walter Roberson am 1 Jan. 2016
mov=aviread('mov.avi');
mov1 = 'mov.avi';
fileinfo = aviinfo(mov1);
for x = 1:fileinfo.NumFrames
[im1,map] = frame2im(mov(x));
imshow(im1);
pause(1);
startpos_E = 74.963269;
startpos_N = 32.732582;
endpos_E = 75.357845;
endpos_N = 33.075700;
[a b c] = size(im1);
disp (a);
disp (b);
[x,y] = ginput(1);
disp (x); disp (y);
lon1 = startpos_E + ((endpos_E - startpos_E)*y)/b;
lat1 = startpos_N + ((endpos_N - startpos_N)*(a-x))/a;
[x,y] = ginput(1);
disp (x); disp (y);
lon2 = startpos_E + ((endpos_E - startpos_E)*y)/b;
lat2 = startpos_N + ((endpos_N - startpos_N)*(a-x))/a;
fid = fopen('text.txt', 'wt');
fprintf(fid,'\n Pixel position is %i & %i',x,y);
fprintf(fid,'\n %i E ',lon1);
fprintf(fid,'%i N',lat1);
fprintf(fid,'\n %i E ',lon2);
fprintf(fid,'%i N',lat2);
if abs(lat1)>90 | abs(lat2)>90
error('Input latitudes must be between -90 and 90 degrees, inclusive.')
end
a = 6378137;
b = 6356752.31424518;
lat1 = lat1 * 0.0174532925199433;
lon1 = lon1 * 0.0174532925199433;
lat2 = lat2 * 0.0174532925199433;
lon2 = lon2 * 0.0174532925199433;
if abs(pi/2-abs(lat1)) < 1e-10;
lat1 = sign(lat1)*(pi/2-(1e-10));
end
if abs(pi/2-abs(lat2)) < 1e-10;
lat2 = sign(lat2)*(pi/2-(1e-10));
end
f = (a-b)/a;
U1 = atan((1-f)*tan(lat1));
U2 = atan((1-f)*tan(lat2));
lon1 = mod(lon1,2*pi);
lon2 = mod(lon2,2*pi);
L = abs(lon2-lon1);
if L > pi
L = 2*pi - L;
end
lambda = L;
lambdaold = 0;
itercount = 0;
while ~itercount | abs(lambda-lambdaold) > 1e-12
itercount = itercount+1;
if itercount > 50
warning('Points are essentially antipodal. Precision may be reduced slightly.');
lambda = pi;
break
end
lambdaold = lambda;
sinsigma = sqrt((cos(U2)*sin(lambda))^2+(cos(U1)*...
sin(U2)-sin(U1)*cos(U2)*cos(lambda))^2);
cossigma = sin(U1)*sin(U2)+cos(U1)*cos(U2)*cos(lambda);
sigma = atan2(sinsigma,cossigma);
alpha = asin(cos(U1)*cos(U2)*sin(lambda)/sin(sigma));
cos2sigmam = cos(sigma)-2*sin(U1)*sin(U2)/cos(alpha)^2;
C = f/16*cos(alpha)^2*(4+f*(4-3*cos(alpha)^2));
lambda = L+(1-C)*f*sin(alpha)*(sigma+C*sin(sigma)*...
(cos2sigmam+C*cos(sigma)*(-1+2*cos2sigmam^2)));
if lambda > pi
warning('Points are essentially antipodal. Precision may be reduced slightly.');
lambda = pi;
break
end
end
u2 = cos(alpha)^2*(a^2-b^2)/b^2;
A = 1+u2/16384*(4096+u2*(-768+u2*(320-175*u2)));
B = u2/1024*(256+u2*(-128+u2*(74-47*u2)));
deltasigma = B*sin(sigma)*(cos2sigmam+B/4*(cos(sigma)*(-1+2*cos2sigmam^2)...
-B/6*cos2sigmam*(-3+4*sin(sigma)^2)*(-3+4*cos2sigmam^2)));
s = b*A*(sigma-deltasigma);
fprintf(fid,'\n distance is %i m', s);
fclose(fid);
winopen('text.txt')
end
  1 Kommentar
Baiju EP
Baiju EP am 1 Jan. 2016
The above code is used for analying 3 videos. Now i want to cahnge the static video into web cam inputs. how can i do this

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by