2012-06-18 32 views
0

我正在分析一些.tiff多幀形式的實驗數據。 Withins這些tiff文件我需要可視化和比較一些特定的幀序列。我想生成一個包含我從我選擇的文件中選擇的框架的圖。文件列表和幀索引列表是通過用戶界面生成的,用戶界面在填充參數時調用繪圖函數。從tiff文件中繪製出幾個選定大小的幀序列

問題:什麼是最佳解決方案,以便繪製出最佳尺寸,但保留方形圖像(如原始圖像),選定的幀?更簡單的是,如何選擇圖中我繪製的每個框架的位置和大小?

我已經嘗試過子圖:它的工作原理,但我無法控制圖像大小。

pos=0; 
for j = 1:length(file_list) 
    for i = 1:length(index_list) 
     pos=pos+1; 
     subplot(size(file_list,1),length(index_list),pos) 
     a =imagesc(imread(file_list{j,:},index_list(i))); 

我也曾嘗試

for j = 1:length(file_list) 
    for i = 1:length(index_list) 
     a =imagesc(imread(file_list{j,:},index_list(i))); 
     set(gca,'Units','Pixels', 'Position', [10+100*i 10+100*j 100 100]); 

但好像我不能設置單獨而不覆蓋最後修改。

最後,我已經考慮使用「蒙太奇」,但我將圖像保存在列表中的方式似乎並不正確。

frm_list=zeros(1,length(FL)*length(index_list)); 
for j = 1:length(FL) 
    for i = 1:length(index_list) 
     a =(imread(FL{j,:},index_list(i))); 
     frm_list=[frm_list a]; 
    end 
end 

montage(frm_list,'Size', [length(FL) length(index_list)]); 

感謝 JC

回答

0

您可以使用axis image保持原始圖像相同的縱橫比。

subplot('Position', [left bottom width height])允許您指定圖像與數字窗口的相對位置。

如果要使用除imagesc以外的命令,可以在繪製之前縮放圖像的數據範圍,然後使用colormap將虛假着色應用於圖像。

+0

謝謝@rwong。像這樣使用它: 'scrsz = get(0,'ScreenSize'); plt = figure(); set(plt,'Position',scrsz); 對於j = 1:長度(FL) 對於i = 1:長度(index_list) 子圖('Position',[10 * i + 50 * i 10 * j + 50 * j 50 50]) imagesc (FL {j,:,index_list(i)));' 返回一個空的數字,同時使用subplot命令就像我在前一篇文章中寫的那樣給我正確的數字(但是自動調整大小不適合我的需求)。我不明白爲什麼。它應該根據循環使用次數將圖像添加到相關位置。 –

+0

對不起,在上一篇文章中難以理解的代碼,我不知道如何在「添加評論」窗口中使其更好。 'axis square'給出了很好的結果,但是不允許我選擇子圖中兩行之間的空格。再次感謝你,我會處理這個軸心方案。 –

相關問題