opencv split和merge操作
2014-05-13 09:38
260 查看
#include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vector> using namespace cv; using namespace std; int main() { Mat srcImage=imread("e:/huangshan.jpg"); Mat imageBlue,imageGreen,imageRed; Mat mergeImage; //定义一个Mat向量容器保存拆分后的数据 vector<Mat> channels; //判断文件加载是否正确 assert(srcImage.data!=NULL); namedWindow("image",CV_WINDOW_AUTOSIZE); namedWindow("mergeImage",CV_WINDOW_AUTOSIZE); //通道的拆分 split(srcImage,channels); //提取蓝色通道的数据 imageBlue = channels.at(0); //提取绿色通道的数据 imageGreen = channels.at(1); //提取红色通道的数据 imageRed = channels.at(2); imshow("image",imageBlue); //对拆分的通道数据合并 merge(channels,mergeImage); imshow("mergeImage",mergeImage); waitKey(); system("pause"); return 0; }
#include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vector> using namespace cv; using namespace std; int main() { Mat srcImage=imread("e:/jiansheng.jpg"); Mat logoImage = imread("e:/timu.jpg",0); Mat imageBlue,imageGreen,imageRed; Mat mergeImage; //定义一个Mat向量容器保存拆分后的数据 vector<Mat> channels; //判断文件加载是否正确 assert(srcImage.data!=NULL && logoImage.data!=NULL); //namedWindow("image",CV_WINDOW_AUTOSIZE); namedWindow("mergeImage",CV_WINDOW_AUTOSIZE); //通道的拆分 split(srcImage,channels); //提取蓝色通道的数据 imageBlue = channels.at(1); addWeighted(imageBlue(Rect(0,0,logoImage.cols,logoImage.rows)),0.5,logoImage,0.5,0.,imageBlue(Rect(0,0,logoImage.cols,logoImage.rows))); //对拆分的通道数据合并 merge(channels,mergeImage); imshow("mergeImage",mergeImage); waitKey(); system("pause"); return 0; }
#include<opencv2/opencv.hpp> #include<iostream> #include<vector> using namespace std; using namespace cv; int main() { Mat img = imread("f:/huang.jpg"); namedWindow("image",WINDOW_AUTOSIZE); imshow("image",img); Mat gray; cvtColor(img,gray,CV_RGB2GRAY); namedWindow("gray",WINDOW_AUTOSIZE); imshow("gray",gray); Mat mimg = imread("f:/mei.jpeg"); namedWindow("mei",WINDOW_AUTOSIZE); resize(mimg,mimg,Size(img.cols,img.rows)); addWeighted(mimg,0.2,img,0.9,0.,mimg); imshow("mei",mimg); vector<Mat> channels; split(img,channels); vector<Mat>::iterator it = channels.begin(); char str[][20]={"blue","green","red"}; int i=0; for(;it!=channels.end();++it,++i) { namedWindow(str[i],WINDOW_AUTOSIZE); imshow(str[i],*it); } waitKey(); return 0; }
相关文章推荐
- opencv split和merge操作
- 【OpenCV】 split和merge操作
- opencv split和merge操作
- opencv学习笔记-split分离和merge合并操作
- 【OpenCV3】图像通道分离与合并——cv::split()与cv::merge()详解
- opencv通道拆分与合并:split和merge
- opencv中与split()与merge()的问题
- 学习OpenCV彩色图像的通道的分离(split)与合成(merge)
- [opencv] 将摄像头图像做镜像变换(split, merge, 矩阵相乘)
- opencv Mat 多通道拆分Split和组合Merge
- OpenCV 学习 (Split 和 Merge)
- opencv之split和merge分离通道和合并多通道的用法
- OpenCV 学习 (Split 和 Merge)
- opencv3.0学习之路【10/14】split,merge
- Partition Range 的 Split 和 Merge 操作
- 【OpenCV3.1 第5篇】 相关操作: mean、clone、zeros、circle、cvtColor、meanStdDev、split
- OpenCV Mat图像颜色通道分离(split)合成(merge),各通道合图显示
- Opencv中颜色通道分离、混合的split和merge
- 【OpenCV笔记 08】OpenCV中分离颜色通道split()和图像通道混合merge()
- 【opencv】Mat 数据操作