matlab之getframe


  1. 功能:將軸或圖形捕獲為影片幀
  2. 函數:F = getframe  F = getframe(ax)  F = getframe(fig)  F = getframe(___,rect)
  3. 介紹:
    • F = getframe捕獲當前軸作為電影幀出現在屏幕上。 F是包含圖像數據的結構。 getframe捕獲的軸尺寸與屏幕上顯示的尺寸相同。 它不會捕獲刻度標簽或軸輪廓之外的其他內容。
      • %創建一個隨機數據圖。 捕獲軸並返回圖像數據。 getframe捕獲軸的內部和軸的輪廓。 它不會捕獲超出軸輪廓的內容。
         plot(rand(5))
         F = getframe;
         %F是具有包含捕獲的圖像數據的字段cdata的結構。 使用imshow顯示捕獲的圖像數據。 
        figure imshow(F.cdata)

 

      • %指定要捕獲的矩形區域
        %捕獲軸的內部以及每個方向上30像素的邊距。 要在捕獲幀中包含刻度線標簽,必須增加邊距。 根據刻度標簽的大小,可能需要調整邊距。
        plot(rand(5))
        
        
        
        %將軸單位更改為像素,然后返回當前軸位置。 位置向量的第三個和第四個元素指定以像素為單位的軸的寬度和高度。
        drawnow
        ax = gca;
        ax.Units = 'pixels';
        pos = ax.Position
        
        
        %創建一個四元素向量rect,該向量定義覆蓋軸和所需邊距的矩形區域。 rect的前兩個元素相對於軸的左下角指定矩形的左下角。 rect的最后兩個元素指定矩形的寬度和高度。 
        %將軸單位重置為默認值“歸一化”。
        marg = 30;
        rect = [-marg, -marg, pos(3)+2*marg, pos(4)+2*marg];
        F = getframe(gca,rect);
        ax.Units = 'normalized';
        
        
        
        figure
        imshow(F.cdata)
        

          

 

 

    • F = getframe(ax)捕獲由ax標識的軸,而不是當前軸。
      • %用兩個子圖創建一個圖形。 在上方的子圖中,繪制一條藍線。 在下部子圖中,畫一條紅線
        ax1 = subplot(2,1,1);
        plot(1:10,'b')
        ax2 = subplot(2,1,2);
        plot(1:10,'r')
        
        
        %捕獲下部子圖的內容。 getframe捕獲子圖的內部和邊界。 它不會捕獲刻度值或超出子圖輪廓的標簽。
        F = getframe(ax2);
        
        
        figure
        imshow(F.cdata)
        

          

         

         

         

    • F = getframe(fig)捕獲由fig標識的圖形。 如果要捕獲圖形窗口的整個內部,包括軸標題,標簽和刻度線,請指定一個圖形。 捕獲的電影幀不包含圖形菜單和工具欄。
      • %創建表面圖。 捕獲圖形窗口的內部,不包括菜單和工具欄。
        surf(peaks)
        F = getframe(gcf);
        
        
        %F是具有包含捕獲的圖像數據的字段cdata的結構。使用imshow顯示捕獲的圖像數據。
        figure
        imshow(F.cdata)  
        

          

         

         

 

    • F = getframe(,rect)獲取由rect定義的矩形內的區域。將rect指定為表單的四個元素向量[左下寬高]。此選項可與前面語法中的ax或fig輸入參數一起使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM