2014-10-03 44 views
0

我做Android開發的Java中使用OpenCV的。我試圖讓OpenCv Imgproc.resize()放大圖像,但它不會改變放大率。它似乎只是將相同的圖像從源文件複製到目標文件,而無需更改。任何幫助,將不勝感激。謝謝。我的代碼是:OpenCV的java的大小調整不起作用

Mat src = new Mat(bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC3); 

Utils.bitmapToMat(bitmap, src, true); 

Mat dst = new Mat((int)(src.cols()*1.5), (int)(src.rows()*1.5), CvType.CV_8UC3); 

Imgproc.resize(src, dst, dst.size()); //resize image 

resizedBitmap = Bitmap.createBitmap(dst.cols(), dst.rows(), Bitmap.Config.ARGB_8888); 

Utils.matToBitmap(dst, resizedBitmap); 

imageView.setImageBitmap(resizedBitmap); 
+0

使用縮進,因爲每個站點請格式化你的代碼準則。它使閱讀起來更容易。 – Ideasthete 2014-10-03 19:29:17

+0

我很抱歉沒有正確縮進我的代碼。我會確保我下次再這樣做。 – Dale 2014-10-13 18:49:52

回答

0
Mat dst = new Mat(); //no, you don't have to pre-allocate it. this is no more C. 
Imgproc.resize(src, dst, new Size(src.cols()*1.5), (int)(src.rows()*1.5))); //resize image 
// or: 
Imgproc.resize(src, dst, new Size(), 1.5, 1.5); //resize image 
+0

謝謝你的回答。此代碼在我的情況下不起作用,並且我發現了原因。我寫了一個Java測試程序在我的PC上運行,並且調整大小的方法完美運行。這個問題顯然只會在Android應用程序中出現。我想知道是否可能有一個opencv調整大小方法,也許是一個本機android調整大小方法之間的衝突。我仍然有這個問題,但其原因顯然是由於android平臺。有沒有機會有一個可能有任何想法的機器人大師?再次感謝大家的幫助。 – Dale 2014-10-13 18:57:45

+0

android正在使用完全相同的代碼。 – berak 2014-10-13 19:00:07

+0

貝拉克,你給了我我需要的答案。謝謝。事實證明,問題是我需要先裁剪地毯,然後再將其重新調整回屏幕的100%。 berak告訴我resize代碼是正確的,所以我意識到我需要看別的東西。再次感謝。 – Dale 2014-10-20 14:26:44

0

我收到了同樣的問題,我解決它通過 放在這些代碼行: -

public class MainActivity extends Activity { 

     //Put your code here ... 


     static { 
       System.loadLibrary("opencv_java"); 
     } 
    } 
相關問題