Hi, i am working on GUI project.I wan that the below given code should take the pixel range (here: 38,333,334,etc.) from user and the display it.

1 次查看(过去 30 天)
u=multibandread('paris.lan',[512,512,7],'uint8=>uint8',128,'bil','ieee-le'); Nof_bands=7; for k=1:Nof_bands t_value=u(:,:,k);
x(k)=double(t_value(38,333));
y(k)=double(t_value(38,334));
z(k)=double(t_value(39,333));
b(k)=double(t_value(39,334));
x1(k)=double(t_value(486,115));
y1(k)=double(t_value(486,116));
z1(k)=double(t_value(487,115));
b1(k)=double(t_value(487,116));
avg(k)=double(x(k)+y(k)+z(k)+b(k))/4;
avg1(k)=double(x1(k)+y1(k)+z1(k)+b1(k))/4;
end
d=[1:1:7];
figure(1)
plot(d,avg,'r',d,avg1,'g');

采纳的回答

Aarti Dwivedi
Aarti Dwivedi 2018-7-6
User input from mouse Please check the above link. If you want 4 points as you mention in your comment, you can do
[x,y] = ginput(4)
The link in the answer gives more documentation on what you need to do for different use cases.
  3 个评论
Aarti Dwivedi
Aarti Dwivedi 2018-7-6
It isn't clear from your comment what the error is or where it is occurring. I would advise using an array instead of making several variables with names like x,xx,xxx,xxxx and so on. You also should improve your indentation. Each subsequent line inside a loop doesn't need to be progressively indented with respect to the previous line. The indent should be the same for all lines inside a condition, function, or a loop.
deepika
deepika 2018-7-6
im=multibandread('paris.lan',[512,512,7],'uint8=>uint8',128,'bil','ieee-le'); [a,b]=ginput(1); [xx,yy]=ginput(1); [xxx,yyy]=ginput(1); [xxxx,yyyy]=ginput(1); Nof_bands=7; for k=1:Nof_bands t_value=im(:,:,k);
X(k)=double(t_value(a,b));
Y(k)=double(t_value(a,yy));
Z(k)=double(t_value(xx,b));
b(k)=double(t_value(xx,yy));
x1(k)=double(t_value(xxx,yyy));
y1(k)=double(t_value(xxx,yyyy));
z1(k)=double(t_value(xxxx,yyy));
b1(k)=double(t_value(xxxx,yyyy));
avg(k)=double(X(k)+Y(k)+Z(k)+b(k))/4;
avg1(k)=double(x1(k)+y1(k)+z1(k)+b1(k))/4;
end
z=xcorr2(double(avg),double(avg1));
axes(handles.axes2);
%%RELATE BOTH CODES,GIVE BELOW AND ABOVE
u=multibandread('paris.lan',[512,512,7],'uint8=>uint8',128,'bil','ieee-le'); Nof_bands=7; for k=1:Nof_bands t_value=u(:,:,k);
x(k)=double(t_value(38,333));
y(k)=double(t_value(38,334));
z(k)=double(t_value(39,333));
b(k)=double(t_value(39,334));
x1(k)=double(t_value(486,115));
y1(k)=double(t_value(486,116));
z1(k)=double(t_value(487,115));
b1(k)=double(t_value(487,116));
avg(k)=double(x(k)+y(k)+z(k)+b(k))/4;
avg1(k)=double(x1(k)+y1(k)+z1(k)+b1(k))/4;
end

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by