2017-06-16 65 views
1

我想轉換一個OpenCV墊到android位圖,但是這給了我一個帶藍色色調的圖像(黃色變爲藍色)!即使我沒有對圖像進行任何處理!我不知道爲什麼會發生這種情況。以下是一些相關的代碼:轉換OpenCV墊到Android位圖

File file = new File(imgDecodableString); 
image = Imgcodecs.imread(file.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_COLOR); 
resultBitmap = Bitmap.createBitmap(image.cols(), image.rows(),Bitmap.Config.ARGB_8888);; 
Utils.matToBitmap(image, resultBitmap); 
Bitmap mResult = resultBitmap; 
ImageView imgView = (ImageView) findViewById(R.id.imgView); 
imgView.setImageBitmap(mResult); 
//imgView.setImageBitmap(BitmapFactory.decodeFile(imgDecodableString)); 

我是新來的android應用程序開發,所以我可能會缺少一些簡單的東西。感謝幫助!

編輯:

我上傳圖片以供參考。

Original image

Image I am getting

+0

你可以上傳兩張圖片嗎?我懷疑有一些RGB2BGR問題,但是查看你的源代碼似乎不太可能。 – ZdaR

+0

@ZdaR我上傳了圖片。請看看 – Ank

回答

2

由於懷疑,這個問題是與RGB色彩慣例,安卓如下RGB顏色約定,但OpenCV的如下BGR顏色約定,則可以使用Imgproc.cvtColor(mat, Imgproc.COLOR_BGR2RGBA),糾正在顯示它之前ImageView

+0

你的意思是這樣的: Imgproc.cvtColor(image,image,Imgproc.COLOR_RGB2GRAY,4); 因爲它的工作!謝謝! – Ank