热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenCV3之——分离与合并图像颜色通道:split()merge()

有时为了更好的观察一些图像材料的特征,,需要对RGB三个颜色的分量进行分别的显示和调整,通过OpenCV的split和merge方法可以很

       有时为了更好的观察一些图像材料的特征,,需要对RGB三个颜色的分量进行分别的显示和调整,通过OpenCV的split和merge方法可以很方便的达到目的。

split()函数:用于将一个多通道数组分离成几个单通道数组,这里的array按语境翻译为数组或阵列。

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

    <1>C++: void split(const Mat& src, Mat* mvbegin);

    <2>C++:void split(InputArray m, OutputArrayOfArrays mv);

    变量介绍如下:

        第一个参数:src或者m填我们需要进行分离的多通道数组

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

示例:

#include
using namespace cv;int main(int argc,char** argv) {//类型声明std::vector channels;Mat imageBlueChannel;Mat imageGreenChannel;Mat imageRedChannel;Mat srcImage = imread("1.jpg", 1);//flag=1,载入三通道图像if (!srcImage.data) {std::cout <<"图像读入失败!" <蓝色通道图像", imageBlueChannel);imshow("<2>绿色通道图像", imageGreenChannel);imshow("<3>红色通道图像", imageRedChannel);waitKey(0);return 0;
}
运行结果:(单通道图即分别为三个颜色通道的灰度图)

channels;split(srcImage, channels);//拆分imageBlueChannel = channels.at(0);//蓝通道imageGreenChannel = channels.at(1);//绿通道imageRedChannel = channels.at(2);//红通道imshow("蓝通道", imageBlueChannel);imshow("绿通道", imageGreenChannel);imshow("红通道", imageRedChannel);//对拆分的数据进行合并merge(channels, mergeImage);//合并imshow("合并后的图像", mergeImage);waitKey(0);return 0;
}

运行结果:



推荐阅读
author-avatar
cuijunhao456_715
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有