0
Matlab에서 GUI를 만들어야합니다. 두 이미지의 스폿을 식별하고 그 사이의 거리를 계산해야합니다.Matlab GUI 배열 배열
나는 하나의 지점을 찾아 내고 둘러싸는 코드를 얻었다. 그것은 다음과 같다 : 아래 그림과 같이
function [meanx,meany] = centroid(pic)
[x,y,z] = size(pic);
if(z==1)
;
else
pic = rgb2gray(pic);
end
% N=2;
% image = interp2(double(pic),N,'spline');
image = sort(sort(pic,1),2);
image =reshape(image,1,numel(image));
i=0;
while(i<3)
if(image(end)==image(end-1))
image(end)=[];
else
image(end)=[];
i=i+1;
end
end
threshold = image(end);
pic2 =(pic>=threshold);
pic=(pic-threshold).*uint8(pic2);
% % image=(pic-threshold+1).*uint8(image); %minus threshold
[rows,cols] = size(pic);
x = ones(rows,1)*[1:cols];
y = [1:rows]'*ones(1,cols);
area = sum(sum(pic));
if area ~= 0
meanx = sum(sum(double(pic).*x))/area;
meany = sum(sum(double(pic).*y))/area;
else
meanx = cols/2;
meany = rows/2;
end
을하지만, 내가 여러 지점을 위해 일해야합니다
http://imgur.com/oEe0mRV,UAnbH5y#1
http://imgur.com/oEe0mRV,UAnbH5y#0
지금까지, 나는이 함께 올라와있다, 그러나 그것은 단 하나의 동그라미와 동그라미가 아닙니다. 제발 도와주세요 - 적어도 10X10 관광 명소를 둘러싸고 그들의 값을 저장할 필요가 위에서 설명한 두 이미지에 대해, 그리고 그들 사이의 거리를 찾으십시오!img1 = imread('r0.bmp');
centroidmat=zeros(10,10,2);
for numx=1:2
for numy=1:2
single_spot=img1((numx*220+780):((numx+1)*220+780),(numy*220+1272):((numy+1)*220+1272),:);
figure
imshow(single_spot);
figure
[cx,cy] = centroid(single_spot);
centroidmat(numx,numy,1)=cx;
centroidmat(numx,numy,2)=cy;
imshow(single_spot);
hold on;
plot(cx,cy,'og')
end
end
제발 도와주세요! 어떤 도움을 주셔서 감사합니다!