1. 程式人生 > >andorid版opencv用imwrite把照片儲存到本地時,解決顏色不符問題

andorid版opencv用imwrite把照片儲存到本地時,解決顏色不符問題

opencv提供的imwrite方法是直接把Mat儲存成圖片到本地,會出現顏色與實際不符。

解決:可先把mat轉成bitmap,再儲存圖片到本地即可。

1、用imwrite儲存圖片:(有問題)

imwrite(fileName, rgba);

2、把mat轉bitmap,再儲存:


    private void saveImg(Mat rgba) {
        //先把mat轉成bitmap
        Bitmap mBitmap = null;
        //Imgproc.cvtColor(seedsImage, rgba, Imgproc.COLOR_GRAY2RGBA, 4
); //轉換通道 mBitmap = Bitmap.createBitmap(rgba.cols(), rgba.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(rgba, mBitmap); FileOutputStream fileOutputStream = null; try { fileOutputStream = new FileOutputStream(this.fileName); mBitmap.compress
(Bitmap.CompressFormat.JPEG, 100, fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); Log.d(TAG, "圖片已儲存至本地"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace
(); } }