Android基于opencv實現(xiàn)多通道分離與合并
更新時間:2021年06月18日 10:36:44 作者:易冬
針對圖像多通道的分離與混合,OpenCV 4中提供了split()函數(shù)和merge()函數(shù)用于解決這些需求。本文講解一下Android如何調(diào)用這些函數(shù)實現(xiàn)多通道分離與合并
多通道分離
API
public static void split(Mat m, List<Mat> mv)
- 參數(shù)一:m,待分離的多通道圖像
- 參數(shù)二:mv,分離后的單通道圖像
操作
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_channel_split_merge)
mBgr = Utils.loadResource(this, R.drawable.test)
val imgList = mutableListOf<Mat>()
Core.split(mBgr, imgList)
mChannelB = imgList[0]
mChannelG = imgList[1]
mChannelR = imgList[2]
}
通道合并
API
public static void merge(List<Mat> mv, Mat dst)
- 參數(shù)一:mv,需要合并的圖像數(shù)組,其中每個圖像必須擁有相同的尺寸和數(shù)據(jù)類型
- 參數(shù)二:dst,合并后輸出的圖像,與mv[0]具有相同的尺寸和數(shù)據(jù)類型,通道數(shù)等于所有輸入圖像的通道數(shù)總和
操作
private fun showBGZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(zero)
list.add(zero)
list.add(mChannelR)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showBRZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(zero)
list.add(mChannelG)
list.add(zero)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showGRZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(mChannelB)
list.add(zero)
list.add(zero)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showSwitchBR() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(mChannelR)
list.add(mChannelG)
list.add(mChannelB)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
結果

源碼
以上就是Android基于opencv實現(xiàn)多通道分離與合并的詳細內(nèi)容,更多關于Android opencv實現(xiàn)多通道分離與合并的資料請關注腳本之家其它相關文章!
相關文章
android之App Widget開發(fā)實例代碼解析
本篇文章主要介紹了App Widget框架的實例應用,AppWidget就是我們平常在桌面上見到的那種一個個的小窗口,利用這個小窗口可以給用戶提供一些方便快捷的操作。有需要的可以了解一下。2016-11-11
Android SwipereFreshLayout下拉刷新
這篇文章主要介紹了Android SwipereFreshLayout下拉刷新的相關資料,需要的朋友可以參考下2017-06-06
Android中將View的內(nèi)容保存為圖像的簡單實例
這篇文章主要介紹了Android中將View的內(nèi)容保存為圖像的簡單實例,有需要的朋友可以參考一下2014-01-01
Material Design系列之Behavior上滑顯示返回頂部按鈕
這篇文章主要為大家詳細介紹了Material Design系列之Behavior上滑顯示返回頂部按鈕的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Android中的Retrofit+OkHttp+RxJava緩存架構使用
Retrofit和OkHttp API以及JVM擴展RxJava都是開源項目,大家可以輕松在GitHub上找到,下載和基本配置部分這里我們不作重點,主要還是來看一下Android中的Retrofit+OkHttp+RxJava緩存架構使用:2016-06-06
Android 使用selector改變按鈕狀態(tài)實例詳解
這篇文章主要介紹了Android 使用selector改變按鈕狀態(tài)實例詳解的相關資料,需要的朋友可以參考下2017-01-01

