OpenCV3 之 通道分离与合并
发布日期:2021-07-01 03:59:42
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月26日 01时36分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java中的位向量——BitSet
2019-05-02
Java8日期类用法示例
2019-05-02
通俗易懂的Java线程不安全
2019-05-02
线程安全类错误使用示范
2019-05-02
Java8的Optional
2019-05-02
CentOS和Ubuntu上实用文件格式转换工具
2019-05-02
mysql中的_rowid
2019-05-02
第一章-go开发环境准备与HelloWorld
2019-05-02
第二章-go中的变量
2019-05-02
第三章-go中的常量
2019-05-02
第五章-go中的字符串
2019-05-02
第四章-go中的数组和切片
2019-05-02
Java中ArrayList的对象引用问题
2019-05-02
mysql踩坑记录之limit和sum函数混合使用问题
2019-05-02
MySql之事务管理
2019-05-02
MySql之触发器的使用
2019-05-02
SQL与MySQL基本
2019-05-02
PL/SQL Developer使用
2019-05-02
PL/SQL学习笔记之基本块格式与语法
2019-05-02
PL/SQL学习笔记之数据类型中的标量、LOB
2019-05-02