【opencv学习】之split函数提取多通道图像的单通道图像
2016-04-26 20:43
375 查看
首先解释下什么是多通道图像,一个普通的彩色图像的每个像素点是由RGB三种颜色构成的,那么这种图像就是3通道图像,其中单独的R色、G色和B色都分别称为一个单通道图像。opencv中的Mat类型实际上可以理解为一种多维多通道的矩阵,如果一个普通的彩色图像读进来后赋值给一个Mat类型的对象M,那么这个M就是一个二维数组,这个二维数组中的每个元素都是一个含有三个RGB值得数据,那这个M就是一个二维三通道的矩阵。 在opencv2中有一个函数可以将一个三通道的图像中的每个通道单独提取出来,那就是split函数。 C++: void split(const Mat& mtx, Mat* mv) C++: void split(const Mat& mtx, vector<Mat>& mv) 有这两种定义形式: 参数mtx – 源多通道数组. 参数mv – 目标单通道数组或者单通道数组向量. 在函数中的第一个参数中通道的数和第二个参数数组大小要一致 .提出出来的单通道分别以二维单通道的形式存放在数组mv中。
#include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include<vector> using namespace std; using namespace cv; int main( ) { Mat src, srcOfMerge; Mat mv[3]; //读取源彩色图片 src = imread("D:\\code\\visualstudio\\test1\\test1\\1.jpg"); if( !src.data ) { printf("Error loading src \n"); return -1; } 分割彩色图片,提取出来的单通道图片存放在mv中 split(src,mv); /// Create Windows namedWindow("RGB", 1); namedWindow("R", 1); namedWindow("G", 1); namedWindow("B", 1); imshow( "RGB", src); imshow("R",mv[0]); imshow("G",mv[1]); imshow("B",mv[2]); waitKey(0); return 0; }
相关文章推荐
- linux常用命令
- mac thinkphp3.2 nginx配置rewrite pathinfo
- 每天一点Linux-Makefile
- 《Python入门》Linux 下 Python Web开发环境搭建笔记
- opencv3.1.0 环境配置
- linux定时任务crond那些事! 【转】
- 在linux中添加环境变量
- linux下动态链接库解决方案(二)
- 在centos 6.2,python2.7 下安装QT 4.8.3,pyqt 4.9.5 详细步骤
- mooc linux学习总结
- centos7删除已经安装的docker
- centos7之lamp环境搭建
- Linux内核分析期中总结
- 全文索引----solr入门
- Linux--Condition Variable(条件变量)实现生产者-消费者模型 、读写锁
- OpenGL教程
- Linux内核分析课程总结
- ARM板linux驱动模块编写
- linux编程问题记录
- linux命令之scp