HI,i want user defined band of image in multiband image processing in GUI in matlab.In the belowUI code ,it is default selected band as 4,3,2 ,but i want this to be user defined in GUI.

4 次查看(过去 30 天)
c = multibandread('paris.lan', [512, 512, 7], 'uint8=>uint8',...
128, 'bil', 'ieee-le', {'Band','Direct',[4 3 2]});
imshow(c)

采纳的回答

Image Analyst
Image Analyst 2018-7-5
Have 3 edit fields, one for each ban. The user can type into it. If you're using GUIDE, you can do
band1 = str2double(handles.edtBand1.String);
band2 = str2double(handles.edtBand2.String);
band3 = str2double(handles.edtBand3.String);
bandsToUse = [band1, band2, band3];
multiBandImage = multibandread('paris.lan', [512, 512, 7], 'uint8=>uint8',...
128, 'bil', 'ieee-le', {'Band','Direct',bandsToUse });
imshow(multiBandImage)
  2 个评论
deepika
deepika 2018-7-5
Thank you. but i want pixels range to be user defined. the code given below:
im=multibandread('paris.lan',[512,512,7],'uint8=>uint8',... 128,'bil','ieee-le',{'Band','Direct',[x,y,z]}); 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];
axes(handles.axes1);
plot(d,avg,'r',d,avg1,'g');
Image Analyst
Image Analyst 2018-7-5
See this link to format your code properly.
You can do the same thing with edit fields for user input. Or you can display one frame and ask the user to draw a box over it with imrect() or rbbox().

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Hyperspectral Image Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by