openCV学习笔记-颜色通道的分离和混合
来源:互联网 发布:js base64 编辑:程序博客网 时间:2024/06/05 00:23
- 颜色通道
保存图像颜色信息的通道称为颜色通道。 - RGB color有合成意义的变化(color channel),就是人有合成意义地(只用肢体或使用工具)将红蓝绿三种(实色料或颜色)合成出(一个或多个实色料空间显示、阻挡显示、隐藏、消失,从合成后可以赋予意义、认为无意义、没有赋予的意义、没有发现的意义、没有认同的意义等多种意义;一种颜色或多种颜色显示、阻挡显示、隐藏、消失,从合成后可以赋予意义、认为无意义、没有赋予的意义、没有发现的意义、没有认同的意义等多种意义)。RGB color有合成意义的变化,可以加大空间或增添颜色,两者皆可一起。
- split
CV_EXPORTS void split(const Mat& m, vector<Mat>& mv );
分离图片的颜色通道,把一张多通道的图片m分离成多个单通道的图片存在数组mv里面 - merge
CV_EXPORTS void merge(const vector<Mat>& mv, OutputArray dst );
与split的操作相反。把多张单通道的图片集合mv合成到一张多通道的图片m#include<opencv2/opencv.hpp>#include<opencv2/highgui/highgui.hpp>#include<iostream>using namespace cv;using namespace std;//函数声明bool MultiChannelBlending();//颜色通道混合/*========== 主函数==========*/int main(int argc, char** argv){MultiChannelBlending();waitKey(0);return 0;}bool MultiChannelBlending(){//【0】定义相关变量Mat srcImage;//原图Mat logoImage;//logovector<Mat>channels;//用来存储分离后的通道分量//=====蓝色通道部分===========================Mat imageBlueChannel;//存储蓝色通道分量//【1】读入图片logoImage = imread("logo.jpg",0);//注意是灰度图srcImage = imread("boy.jpg");if (logoImage.empty()){cout<<"读取logo错误!"<<endl;return false;}if (srcImage.empty()){cout<<"读取srcImage错误!"<<endl;return false;}//【2】分离通道,将一张三通道的图片转化成3张单通道图片split(srcImage, channels);//【3】存取蓝色通道部分,这里的赋值是引用,相当于两者等价imageBlueChannel = channels.at(0);//【4】线性混合,将原图的蓝色通道坐标(50,50)左下方矩形区域进行混合addWeighted(imageBlueChannel(Rect(50,50,logoImage.cols,logoImage.rows)),1.0,logoImage,0.5,0,imageBlueChannel(Rect(50,50,logoImage.cols,logoImage.rows)));//【5】重新合成三通道merge(channels, srcImage);//【6】显示图片namedWindow("boy+bluelogo");imshow("boy+bluelogo",srcImage);//=========绿色通道部分==================Mat imageGreenChannel;//【1】读入图片srcImage = imread("boy.jpg");logoImage = imread("logo.jpg",0);//灰度if (srcImage.empty()){cout<<"读取srcImage错误!"<<endl;return false;}if (logoImage.empty()){cout<<"读取logo错误!"<<endl;return false;}//【2】分离通道split(srcImage, channels);//【3】存储绿色通道分量imageGreenChannel = channels.at(1);//【4】线性混合addWeighted(imageGreenChannel(Rect(50,50,logoImage.cols,logoImage.rows)),1.0,logoImage,0.5,0.0,imageGreenChannel(Rect(50,50,logoImage.cols,logoImage.rows)));//【5】重新合成merge(channels, srcImage);//【6】显示namedWindow("boy+greenlogo");imshow("boy+greenlogo",srcImage);//=========红色通道部分==================Mat imageRedChannel;//【1】读入图片srcImage = imread("boy.jpg");logoImage = imread("logo.jpg",0);//灰度if (srcImage.empty()){cout<<"读取srcImage错误!"<<endl;return false;}if (logoImage.empty()){cout<<"读取logo错误!"<<endl;return false;}//【2】分离通道split(srcImage, channels);//【3】存储绿色通道分量imageRedChannel = channels.at(2);//【4】线性混合addWeighted(imageRedChannel(Rect(50,50,logoImage.cols,logoImage.rows)),1.0,logoImage,0.5,0.0,imageRedChannel(Rect(50,50,logoImage.cols,logoImage.rows)));//【5】重新合成merge(channels, srcImage);//【6】显示namedWindow("boy+redlogo");imshow("boy+redlogo",srcImage);return true;}
0 0
- openCV学习笔记-颜色通道的分离和混合
- Opencv中颜色通道分离、混合的split和merge
- 【OpenCV笔记 08】OpenCV中分离颜色通道split()和图像通道混合merge()
- OpenCV学习笔记(10)分离颜色通道&多通道图像混合
- OpenCV学习笔记(07):图像通道的分离和混合
- OpenCV—多通道颜色分离&混合
- 学习@浅墨_毛星云【OpenCV入门教程之五】 分离颜色通道&多通道图像混合
- OpenCV 分离颜色通道与多通道图像混合
- OpenCV-----分离颜色通道 & 多通道图像混合
- OpenCV之五 分离颜色通道&多通道图像混合
- 【计算机视觉】EmguCV学习笔记(4)分离颜色通道以及多通道图像混合
- opencv学习(5)图像像素的访问、颜色通道的分离和融合
- OpenCV之分离颜色通道与混合源代码分析
- OpenCV-颜色通道的分离、合并
- 分离颜色通道&多通道图像混合
- 分离颜色通道&多通道图像混合
- 【OpenCV入门教程之五】 分离颜色通道&多通道图像混合
- 【OpenCV入门教程之五】 分离颜色通道&多通道图像混合
- 自己控制浮点数小数点后位数的输出
- 关于变量的传递方式
- MFC工程复制之后打不开dsw文件
- Linux中关于find指令的用法以及whereis指令
- 数据库连接失败
- openCV学习笔记-颜色通道的分离和混合
- okhttp ConnectionPool使用例子
- shell脚本三步走以及shell编程中常用语法
- c++ 文件流 fstream
- 统计学习基础
- 线程使用教程 四 主线程和子线程的通信
- linux下的access,modify,和change
- hdu Prime Ring Problem (java 简单DFS)
- PyCharm-unresolved reference issue