2014-12-02 336 views
0

我有相機預覽回調。在onPreviewFrame上,我將獲得YUV數據。默認情況下,我的圖像格式是NV21。如果我沒有錯誤的數據[]是YUV格式。裁剪YUV圖像

  1. 讓我有640 * 480的預覽。如何裁剪此YUV以獲得包含480 * 480 YUV圖像的字節[]。
  2. 如何旋轉YUV圖像。
  3. 如果這難以存檔,我該如何裁剪IplImage。我正在使用Javacv對視頻進行編碼。運氣不好,呈綠色。
  4. 是否有任何其他方式來歸檔?

在此先感謝 Amlan。

回答

1
  1. 假設你要一列的最左邊480個像素,而裁剪,你可以遍歷所有的圖像高度(480行),只是第一個480個像素複製爲Y平面。對於UV平面,只需複製原始UV平面中的前480個像素(這將包含240 U和240 V值),環繞半個圖像高度(240行)。

  2. 生成給定旋轉角度的旋轉變換矩陣。它會像

    [cos(theta) -sin(theta) 
    sin(theta) cos(theta)] 
    

    檢查wiki欲瞭解更多信息。取其逆矩陣,並對每個(x,y)對的合成旋轉空圖像,應用該變換以獲得原始圖像中對應的(x,y)座標。使用最近鄰居或雙線性插值來獲得最終的像素值。