1. 程式人生 > >Matlab 顯示圖片和SubPlot命令

Matlab 顯示圖片和SubPlot命令

最近寫個圖片搜尋引擎,惡補Matlab中。。。。

  • matlab顯示圖片命令:

f1=imread('E:/iaprtc12/iaprtc12/images/02/2007.jpg')      %讀取影象矩陣

imshow(f1)               %顯示該影象

  • 但是如果需要在一個介面內顯示多幅圖片 就需要SubPlot命令幫助了

                形式:subplot(m,n,p)或者subplot(m n p)。

說明:subplot是將多個圖畫到一個平面上的工具。其中,m表示是圖排成m行,n表示圖排成n列,也就是整個figure中有n個圖是排成一行的,一共m行,如果第一個數字是2就是表示2行圖。p是指你現在要把曲線畫到figure中哪個圖上,最後一個如果是1表示是從左到右第一個位置,n*m表示最後一個圖。

形式:subplot(m,n,p)或者subplot(m n p)。

說明:P也可以是向量表示將P 中指定的小塊合併成一個大塊建立座標系,P 中指定的小塊可以不連續,甚至不相連。比如subplot(2,3,[2 5])表示將第2和5小塊連成一個大塊;subplot(2,3,[2 6])由於2和6不連續也不相連,此時表示將第2、3、5和6四塊連成一個大塊,相當於subplot(2,3,[2 3 5 6])

       形式:subplot('Position',[left bottom width height])。

說明:在指定位置建立一個新座標系,等效於axes('Position',[left bottom width height])

f1=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,1),1)) '.jpg']);%讀取影象矩陣

f2=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,2),1)) '.jpg']);%讀取影象矩陣

f3=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,3),1)) '.jpg']);%讀取影象矩陣

f4=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,4),1)) '.jpg']);%讀取影象矩陣

f5=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,5),1)) '.jpg']);%讀取影象矩陣

f6=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,6),1)) '.jpg']);%讀取影象矩陣

f7=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,7),1)) '.jpg']);%讀取影象矩陣

f8=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,8),1)) '.jpg']);%讀取影象矩陣

f9=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,9),1)) '.jpg']);%讀取影象矩陣

f10=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,10),1)) '.jpg']);%讀取影象矩陣

subplot(2,5,1)

imshow(f1);%顯示該影象 

subplot(2,5,2)

imshow(f2);%顯示該影象 

subplot(2,5,3)

imshow(f3);%顯示該影象 

subplot(2,5,4)

imshow(f4);%顯示該影象 

subplot(2,5,5)

imshow(f5);%顯示該影象 

subplot(2,5,6)

imshow(f6);%顯示該影象 

subplot(2,5,7)

imshow(f7);%顯示該影象 

subplot(2,5,8)

imshow(f8);%顯示該影象 

subplot(2,5,9)

imshow(f9);%顯示該影象 

subplot(2,5,10)

imshow(f10);%顯示該影象 

缺點是我不知道怎麼比較好的控制圖片的大小(請高手指教),好像每個子區域的大小是預設設定的,而且圖片會預設的四周留空,不過反正只是為了更清楚的看到實驗結果,這個沒什麼關係。

  • 繪製圖表的話,就比較容易控制圖片的大小和位置

例如:t=0:0.001:1;

y1=sin(10*t);

y2=sin(15*t);

subplot(211)

plot(t,y1)

subplot(212)

plot(t,y2)

或者通過axes函式來重新規定子視窗的大小和位置

axes('position',[.1  .1  .8  .6])

mesh(peaks(20));
axes('position',[.1  .7  .8  .2])
pcolor([1:10;1:10]);