欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android基于opencv實(shí)現(xiàn)多通道分離與合并

 更新時(shí)間:2021年06月18日 10:36:44   作者:易冬  
針對(duì)圖像多通道的分離與混合,OpenCV 4中提供了split()函數(shù)和merge()函數(shù)用于解決這些需求。本文講解一下Android如何調(diào)用這些函數(shù)實(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ù)組,其中每個(gè)圖像必須擁有相同的尺寸和數(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()
}

結(jié)果

源碼

github.com/onlyloveyd/…

以上就是Android基于opencv實(shí)現(xiàn)多通道分離與合并的詳細(xì)內(nèi)容,更多關(guān)于Android opencv實(shí)現(xiàn)多通道分離與合并的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論