Bilateral filter error, Assertion failed ((src.type() == CV_8UC1 || src.type() == CV_8UC3) && src.data != dst.data)


一、概述

        這個異常是在用OpenCV做高斯雙邊濾波做圖像美化的時候出現的異常。這個異常信息的意思是圖像類型不對。高斯雙邊濾波只允許CV_8UC1或者CV_8UC3即只能加載單通多的灰色圖片或者三通道的彩色圖片。

二、產生的原因

  原因在於我在做測試的時候直接用BitmapFactory加載了一個Bitmap對象,並把Bitmap對象通過opencv的Uitls工具轉換為了Mat對象,然后操作了這個Mat對象。由於Bitmap默認的通道時RGBA,而openCV默認的是GBR,由於通道不一致所以導致了以上的那個錯誤。

三、解決方法

  解決方案也是比較簡單,把RGBA色彩控件轉換為BGR色彩空間就OK了。具體的轉換是通過 Imgproc.cvtColor(target,dst,Imgproc.COLOR_RGBA2BGR);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM