打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
opencv split和merge操作
mscdj
>《opencv》
2015.02.23
关注
[cpp]
view plain
copy
print
?
#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;
}
[cpp]
view plain
copy
print
?
#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;
}
[cpp]
view plain
copy
print
?
#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;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
【从零学习OpenCV 4】namedWindow函数&imshow函数的使用
OpenCV:图像的加载显示及简单变换
Opencv系列1.2--实例介绍
OpenCV Demo
总结系列
OpenCV探索之路(四):膨胀、腐蚀、开闭运算
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×