Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中绘制任意数量的图像_Matlab_Text - Fatal编程技术网

在MATLAB中绘制任意数量的图像

在MATLAB中绘制任意数量的图像,matlab,text,Matlab,Text,我想绘制随机数目的图像。意味着我已经搜索了与我的查询相关的图像,根据给定的查询,图像可以是5、6或更多。有没有办法根据匹配的图像数量自动绘制它们 以下是我目前的代码: for k = 1:length(textfiles) file = [sdirectory '/' textfiles(k).name]; file1 = [sdirectory1 '/' imgfiles(k).name]; fid=fopen(file,'r'); tline = fg

我想绘制随机数目的图像。意味着我已经搜索了与我的查询相关的图像,根据给定的查询,图像可以是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

您可以将它们连接成多帧/多页图像(4D矩阵),并使用
蒙太奇
显示它们

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
轻松地对它们进行填充,并使用
im2uint8
im2double
等将它们转换为相同的类别。

对于k=1:length(textfiles)
文件=[sdirectory'/'textfiles(k).name]
file1=[sdirectory1'/'imgfiles(k.name]
fid=fopen(文件,'r')
tline=fgetl(fid)
而ischar(tline)
`line_string=sprintf('%s',tline);`
x=get(handles.edit1,'String')`u=strfind(第_行字符串,x);`<代码>tline=fgetl(fid)
如果u>0
file2=imread(file1)
图,imshow(imresize(文件2,0.5)),标题(文件1)
中断
end
end
fclose(fid)
end
在上述代码中,最终图像在文件1中。我将您的代码直接粘贴到您的问题中。现在,您能描述一下这是什么输出,以及您想要什么吗?在这段代码中,检索与查询字符串匹配的图像。根据输入的字符串,图像可以是任意数字。图像存储在变量
file1
中。我希望将图像绘制成一个图形,知道根据给定的查询,图像的数量可能不同。给出了未定义的函数或变量
mframe
,这是对OP原始问题的一个令人印象深刻的猜测。我只是看着他的代码才明白。@user3416063我猜你是想用for循环。必须在循环之前初始化空单元格数组(我刚刚调整了问题)。