使用split函数提取彩色图像的三个通道
2013-12-19 10:56
295 查看
split函数的主要功能是把一个彩色图像分割成3个通道,方便进一步的图像处理,具体说明如下:
split Divides a multi-channel array into several single-channel arrays.
C++: void split(const Mat& mtx, Mat* mv)
C++: void split(const Mat& mtx, vector<Mat>& mv)
其实还有一个函数merge可以实现相反的操作,简单说明如下:
merge Composes a multi-channel array from several single-channel arrays.
C++: void merge(const Mat* mv, size_t count, OutputArray dst)
C++: void merge(const vector<Mat>& mv, OutputArray dst)
其示例代码如下:
#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <vector>
using namespace cv;
int main( int argc, char** argv )
{
Mat src, srcOfMerge;
vector<Mat> mv;
/// Read image ( same size, same type )
src = imread("d:\\images\\WindowsLogo.jpg");
if( !src.data ) { printf("Error loading src \n"); return -1; }
split(src,mv);
/// Create Windows
namedWindow("RGB", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("srcOfMerge", 1);
imshow( "RGB", src);
imshow("R",mv[0]);
imshow("G",mv[1]);
imshow("B",mv[2]);
merge(mv,srcOfMerge);
imshow("srcOfMerge",srcOfMerge);
waitKey(0);
return 0;
}
split Divides a multi-channel array into several single-channel arrays.
C++: void split(const Mat& mtx, Mat* mv)
C++: void split(const Mat& mtx, vector<Mat>& mv)
其实还有一个函数merge可以实现相反的操作,简单说明如下:
merge Composes a multi-channel array from several single-channel arrays.
C++: void merge(const Mat* mv, size_t count, OutputArray dst)
C++: void merge(const vector<Mat>& mv, OutputArray dst)
其示例代码如下:
#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <vector>
using namespace cv;
int main( int argc, char** argv )
{
Mat src, srcOfMerge;
vector<Mat> mv;
/// Read image ( same size, same type )
src = imread("d:\\images\\WindowsLogo.jpg");
if( !src.data ) { printf("Error loading src \n"); return -1; }
split(src,mv);
/// Create Windows
namedWindow("RGB", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("srcOfMerge", 1);
imshow( "RGB", src);
imshow("R",mv[0]);
imshow("G",mv[1]);
imshow("B",mv[2]);
merge(mv,srcOfMerge);
imshow("srcOfMerge",srcOfMerge);
waitKey(0);
return 0;
}
相关文章推荐
- OpenCv学习笔记(四):使用split函数提取彩色图像的三个通道
- split函数提取彩色图像的三个通道
- 使用opencv提取RGB图像的三个通道,并显示
- 彩色图像RGB通道分别读到三个灰度图像
- 【opencv学习】之split函数提取多通道图像的单通道图像
- 使用形态运算提取带噪声图像的边缘
- 使用EMGU.CV对图像进行SIFT和SURF特征提取
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies
- 【Open CV基础】使用Open CV操作图像的像素通道值
- Kinect For Windows V2开发日志五:使用OpenCV显示彩色图像及红外图像
- 如何使用matlab从视频中提取出一帧帧图像
- 关于Kinect深度图和彩色图像提取
- 使用Tesseract OCR 提取复杂图像中的文字
- 图像指定坐标点的各通道像素值提取
- IplImage的使用 从三通道图中分离出三个单通道
- Python—RGB2GRAY 彩色图像R、G、B分量的提取与合并及其相关颜色空间的转化
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)
- Codrops 实验:使用 Vibrant.js 提取图像颜色
- opencv中彩色图像通道分离、合成
- opencv-使用GrabCut提取背景图像