【OpenCV】OpenCV函数精讲之 -- 通道分离:split()函数

 2023-09-09 阅读 24 评论 0

摘要:split函数用于将一个多通道数组分离成几个单通道数组。 split函数的C++版本有两个原型,分别是: void split(const Mat& src, Mat*mvbegin); void split(InputArray m, OutputArrayOfArrays mv); opencv inrange?参数含义如下: 第一个参数&#

split函数用于将一个多通道数组分离成几个单通道数组。

split函数的C++版本有两个原型,分别是:

void split(const Mat& src, Mat*mvbegin);
void split(InputArray m, OutputArrayOfArrays mv);

opencv inrange?参数含义如下:

第一个参数:InputArray m(const Mat& src),填我们需要进行分离的多通道数组。

第二个参数:OutputArrayOfArrays mv,填函数的输出数组或者输出的vector容器。

opencv函数手册、 split函数分割多通道数组转换成独立的单通道数组,公式如下:

                                                                      mv[c](I)=src(I)_{c}

 下边是一个示例:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>using namespace cv;
using namespace std;void main(){vector<Mat> channels;Mat imageBlueChannel;Mat imageGreenChannel;Mat imageRedChannel;Mat srcImage4 = imread("mogu.jpg");imshow("【原始图】", srcImage4);//把一个3通道图像转换成3个单通道图像split(srcImage4, channels);imageBlueChannel = channels.at(0);imageGreenChannel = channels.at(1);imageRedChannel = channels.at(2);//显示单通道图像imshow("【BlueChannel】", imageBlueChannel);imshow("【GreenChannel】", imageGreenChannel);imshow("【RedChannel】", imageRedChannel);waitKey();
}

opencv circle函数?代码解析:

上述代码先做了相关的类型声明,然后把载入的3通道图像转换成3个单通道图像,放到vector<Mat>类型的channels中,接着进行引用赋值。

OpenCV的BGR色彩空间(Blue、Green、Red,蓝、绿、红),其中channels.at(0)表示引用取出的是蓝色分量,channels.at(1)表示引用取出的是绿色分量,channels.at(2)表示引用取出的是红色分量。


运行结果:

                                               原始图

                                          BlueChannel

                                       GreenChannel

                                        RedChannel

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/26158.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息