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)c

2. 通道合并

通道合并在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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:OpenCV3 之 图像对比度与亮度值的调整
下一篇:OpenCV3 之 图像叠加&图像混合

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月26日 01时36分39秒