2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 多通道图像的分解和单通道图像的合成

多通道图像的分解和单通道图像的合成

时间:2022-06-18 05:54:30

相关推荐

多通道图像的分解和单通道图像的合成

#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;void main(){//【0】定义相关变量Mat srcImage;//原图像Mat srcImage1;//原图像Mat logoImage;//标志图vector<Mat>channels;//定义通道Mat imageBlueChanne;//以下分别为蓝绿红三个通道Mat imageGreenChanne;Mat imageRedChanne;//=================【颜色通道分割】=================srcImage = imread("9.png");//【2】把一个3通道图像转换成3个单通道图像split(srcImage, channels);//分离色彩通道//【3】将原图的蓝色通道引用返回给imageBlueChanneimageBlueChanne = channels.at(0);namedWindow("蓝色单通道图像");imshow("蓝色单通道图像", imageBlueChanne);imageGreenChanne = channels.at(1);namedWindow("绿色单通道图像");imshow("绿色单通道图像", imageGreenChanne);imageRedChanne = channels.at(2);namedWindow("红色单通道图像");imshow("红色单通道图像", imageRedChanne);merge(channels,srcImage1);//合成原图imshow("合成原图", srcImage1);waitKey(0);}

这三张结果图像显示的来看,可以很明显看出这三张图片都是灰度图像,但是他们的灰度值不同。这是因为我们的split函数是将三通道的彩色图像分解为三个单通道图像。

下面简单介绍一下单通道和三通道:

单通道:此通道上值为0-255。(255为白色,0是黑色)只能表示灰度,不能表示彩色。

三通道,在BGR(255,255,255为白色,0,0,0是黑色)可以表示彩色,灰度也是彩色的一种。

所以我们分解出来的三个图像灰度值不同实际上就是对应他各自之前蓝绿红的像素值。

百度云盘:链接:/s/11b634VvKMIsGdahyBLpZ3Q 提取码:6666

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。