2013-12-19 41 views
2

我是剛剛開發OpenCV的android。我有一個圖像,我正在對圖像進行一些操作。我首先將圖像轉換爲位圖,然後將該位圖轉換爲MAT,如下所示。OpenCV android中MAT的大小仍然是1920 * 2560 * CV_8UC4

Mat src = new Mat (400, 800, CvType.CV_8UC1, new Scalar(4)); 
    Bitmap myBitmap32 = BitmapFactory.decodeFile(bitmap_file); 
    Utils.bitmapToMat(myBitmap32, src); 

但是當我運行它,我得到我的墊子是

墊[1920 * 2560 * CV_8UC4,isCont = TRUE,isSubmat =假,nativeObj = 0x527a5950,DATAADDR = 0x54262010]

所以,我得到圖像大小爲1920x2560。

我想這個尺寸是我的原始400x800。

回答

2

從OpenCV的Java文檔:

輸出墊板是總是創建的相同大小的作爲輸入位圖和「CV_8UC4」類型的,它使在RGBA格式的圖像。

所以,調整圖像大小,你應該首先閱讀圖像的墊子,然後使用resize()(從Imgproc):

public static void resize(Mat src, Mat dst, Size dsize) 
public static void resize(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation) 

至於要收縮的圖像,這是recommended使用CV_INTER_AREA插值。