多通道分离与合并

发布时间:2022-06-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了多通道分离与合并脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

多通道分离与合并

分离

  • 函数split()用于将多通道的图像分离成若干单通道的图像

原型一:

void cv::split(const Mat & src, Mat * mvbegin)
// src:待分离的多通道图像
// mvbegin:分离后的单通道图像,为数组形式,数组大小需要与图像的通道数相同

原型二:

void cv::split(IuputArray m, OutputArrayOfArrays mv)
// m:待分离的多通道图像
// mv:分离后的单通道图像,类型为vector<Mat>

合并

  • 函数merge()主要用于将多个图像合并成一个多通道图像
  • 合并函数的输出结果是一个多通道图像,其通道数目是所有输入图像通道数目的总和
  • 用于合并的图像并非都是单通道的,也可以是多个通道数目不相同的图像合并成一个通道更多的图像

原型一:

void cv::merge(const Mat * mv, size_t count, OutputArray dst)
// mv:需要合并的图像数组,其中每个图像必须拥有相同的尺寸和数据类型
// count:输入的图像数组的长度,其数值必须大于0
// dst:合并后输出的图像,与mv[0]具有相同的尺寸和数据类型,通道数等于所有输入图像的通道数总和

原型二:

void cv::merge(IuputArrayOfArrays mv, OutputArray dst)
// mv:需要合并的图像矢量(vector),其中每个图像必须拥有相同的尺寸和数据类型

例子

#include <opencv2/opencv.hpp>
#include <vector>
using namespace cv;
int main()
{
    Mat_<Vec3b> bgr = imread("/home/kslas/OpenCV/test.jpg", -1);
    Mat_<Vec3b> hsv;
    cvtColor(bgr, hsv, COLOR_BGR2HSV);

    // 输入数组参数的多通道分离与合并
    Mat_<uchar> imgs0;
    Mat_<uchar> imgs1;
    Mat_<uchar> imgs2;
    Mat_<uchar> imgs[3];
    split(bgr, imgs);
    imshow("RGB-B", imgs[0]);
    imshow("RGB-G", imgs[1]);
    imshow("RGB-R", imgs[2]);
    Mat_<uchar> zero = Mat::zeros(imgs[2].size(), imgs[2].type());
    imgs[2] = zero;
    Mat_<Vec3b> result1;
    merge(imgs, 3, result1);
    imshow("result1", result1);

    // 输入vector参数的多通道分离与合并
    Mat_<uchar> imgv0;
    Mat_<uchar> imgv1;
    Mat_<uchar> imgv2;
    std::vector<Mat_<uchar>> imgv;
    split(hsv, imgv);
    imgv0 = imgv.at(0);
    imgv1 = imgv.at(1);
    imgv2 = imgv.at(2);
    imshow("HSV-H", imgv0);
    imshow("HSV-S", imgv1);
    imshow("HSV-V", imgv2);
    imgv0 = 180;
    Mat_<Vec3b> result2;
    merge(imgv, result2);
    imshow("result2", result2);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

运行结果:

多通道分离与合并

多通道分离与合并

多通道分离与合并

脚本宝典总结

以上是脚本宝典为你收集整理的多通道分离与合并全部内容,希望文章能够帮你解决多通道分离与合并所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: