我想绘制随机数量的图像。意味着我搜索了与我的查询相关的图像,根据给出的查询,图像可以是5,6或更多。有没有办法根据匹配的图像数量自动绘制它们。
到目前为止,这是我的代码:
for k = 1:length(textfiles)
file = [sdirectory '/' textfiles(k).name];
file1 = [sdirectory1 '/' imgfiles(k).name];
fid=fopen(file,'r');
tline = fgetl(fid);
while ischar(tline)
line_string = sprintf('%s',tline);
x = get(handles.edit1,'String');
u=strfind(line_string,x);
tline = fgetl(fid);
if u>0
file2=imread(file1);
figure,imshow(imresize(file2,0.5)),title(file1);
break;
end
end
fclose(fid);
end
答案 0 :(得分:1)
您可以将它们连接成多帧/多页图像(4D矩阵),并使用montage
显示它们。
mframe = cat (4, img1, img2, img3);
montage (mframe)
由于您不知道要绘制的图像数量,因此可以先将它们全部放入单元格数组中:
mframe = cell (); % if you know in advance the number of images...
for ...
## whatever code you have to pick the right images
mframe{end+1} = img;
endfor
mframe = cat (4, mframe{:});
montage (mframe)
这假设图像大小相同,所有RGB或灰度,以及相同的类,如果不是,您可以使用padarray
轻松填充它们,并使用{{将它们转换为同一个类1}},im2uint8
等......