필터 지우기
필터 지우기

Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Problem to run nested for loop.

조회 수: 1 (최근 30일)
roro6992
roro6992 2014년 1월 18일
마감: MATLAB Answer Bot 2021년 8월 20일
I am facing problem to run a nested for loop. I think the else operator is not working. Why this is happening?? Is there any way out?? Please check the code given below. The image file is attached.
I=imread('map.png');
pim=im2bw(I,0.05);
pim2 = double(cat(3, pim, pim, pim)); %RGB format of path image
I1=rgb2gray(I);
BW = roicolor(I1,20,225);
landim=bwareaopen(BW,20);
s = regionprops(landim, 'centroid');
centroids = cat(1, s.Centroid);
centroid=floor(centroids);
cc = bwconncomp(landim);
n=cc.NumObjects;
for i=1:n
for j=2:n
if abs(centroid(i,1)-centroid(j,1))<10
centroid(i,1)=centroid(j,1);
end
if abs(centroid(i,2)-centroid(j,2))<10
centroid(i,2)=centroid(j,2);
end
end
end
disp(centroid)
order=zeros(n,2);
finalorder=zeros(20,2);
f=1;
for i=1:n
rgb=impixel(I,centroid(i,1),centroid(i,2));
if rgb(1)+rgb(2)>440
start=centroid(i,:);
order(1,:)=start;
elseif 130<rgb(1)<210 && 60<rgb(2)<130 && 15<rgb(3)<50
finish=centroid(i,:);
order(n,:)=finish;
else
f=f+1;
order(f,:)=centroid(i,:);
end
end
disp(order)
  댓글 수: 2
roro6992
roro6992 2014년 1월 18일
The matrix order is not coming out correct. But i cant find any flaws in the code..please help..
Amit
Amit 2014년 1월 18일
where is the image file? you said it attached?

답변 (1개)

Image Analyst
Image Analyst 2014년 1월 18일
This is not proper syntax in most languages, including MATLAB:
if 130<rgb(1)<210 && 60<rgb(2)<130 && 15<rgb(3)<50
You need to split it up so you are comparing only two things:
if 130<rgb(1) && rgb(1) <210 && 60<rgb(2) && rgb(2)<130 && 15<rgb(3) && rgb(3)<50
  댓글 수: 5
roro6992
roro6992 2014년 1월 19일
Its done. The code runs now. My syntax was wrong actually. Thanx image analyst!
Image Analyst
Image Analyst 2014년 1월 19일
Can you mark it as "Accepted" then?

이 질문은 마감되었습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by