OpenCV3 之 通道分离与合并
发布日期:2021-07-01 03:59:42
浏览次数:2
分类:技术文章
本文共 988 字,大约阅读时间需要 3 分钟。
1. 通道分离
在OpenCV中通过split()函数
来实现,该函数用于将一个多通道数组分离成几个单通道数组,其函数原型如下:
void split(const Mat& src, Mat* mvbegin);void split(InputArray m, OutputArrayOfArrays mv);
- 参数1:需要分离的通道数组
- 参数2:输出数组或输出的vector容器
公式如下:
m v [ c ] ( I ) = src ( I ) c m v[c](I)=\operatorname{src}(I)_{c} mv[c](I)=src(I)c2. 通道合并
通道合并在OpenCV中通过merge()
函数实现,是split()
函数的逆操作,即把多个数组合并成一个多通道数组,其函数原型如下:
void merge(const Mat* mv, size_tcount, OutputArray dst);void merge(InputArrayOfArrays mv, OutputArray dst);
- 参数1:被合并的输入矩阵或vector容器阵列,所有矩阵必须有统一的尺寸和深度
- 参数2:输入矩阵的个数,此参数必须大于1
- 参数3:输出矩阵,通道数量为矩阵阵列中通道的总数
3. 代码示例
#include#include using namespace std;using namespace cv;int main() { Mat srcImage,dstImage; vector channels; srcImage = cv::imread("dota_pa.jpg"); split(srcImage, channels); imshow("通道1", channels.at(0)); // 蓝色通道 imshow("通道2", channels.at(1)); // 绿色通道 imshow("通道3", channels.at(2)); // 红色通道 merge(channels, dstImage); imshow("合成通道4", dstImage); waitKey(0); return 0;}
参考书籍《OpenCV3编程入门》
转载地址:https://miracle.blog.csdn.net/article/details/100577550 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月14日 05时28分09秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
nftw遍历目录树
2019-05-02
GetLastError
2019-05-02
windows系统错误代码大全
2019-05-02
WinAPI获取系统用户信息
2019-05-02
微软警告:Windows PC也存在Freak安全漏洞
2019-05-02
Android 多个Activity之间的传值
2019-05-02
使用Qt / C + +通过JNI调用Java代码
2019-05-02
Qt移动应用开发(七):QML与Java的交互
2019-05-02
qt发送邮件测试
2019-05-02
如何在Qt和Qml中发邮件
2019-05-02
QT开发之旅四邮件发送工具
2019-05-02
QT版的POP3协议实现
2019-05-02
央视315:公共场所WiFi偷钱技术原理及防范措施专家版
2019-05-02
qml drag listview
2019-05-02
从另一个qml文件中读取数据并显示在ListView中
2019-05-02
QML之鼠标样式
2019-05-02
C/C++回调函数
2019-05-02
Mac SVN 命令行
2019-05-02
在Mac系统下发布Qt程序详细教程
2019-05-02