opencv3 学习五 - 合并与分割通道
合并与分割通道
程序如下
#include "opencv2/opencv.hpp"
using namespace cv;
int main()
{
Mat original = imread("girl.jpg",CV_LOAD_IMAGE_COLOR);
Mat splitChannels[3]; // 声明Mat数组,共3个元素,存放分离后的通道
split(original, splitChannels); // 分离original
// 分别显示B,G,R,
imshow("B", splitChannels[0]);
imshow("G", splitChannels[1]);
imshow("R", splitChannels[2]);
waitKey();
// 把 R 通道像素值全部清零,那么这个通道就显示为黑色
splitChannels[2] = Mat::zeros(splitChannels[2].size(), CV_8UC1);
Mat output;
// 把3个通道合并,保存到output中, 然后显示
merge(splitChannels, 3, output);
imshow("Merged", output);
waitKey();
return 0;
}
运行结果如下:

最后的图片就是合并通道后的图片, R 通道全部置零,和上篇博客中最后一幅图效果是一样的。
1. split函数,分离通道
函数原型:
void split(const Mat& src, vector<Mat>& dst);
参数说明:
- src: 原始彩色图像,这里就是original
- dst: 分离后3通道图像保存的Mat数组,这里选择只有3个元素的 splitChannels
2. Mat.zeros 成员函数,生产一个所有元素为零的矩阵
函数原型:
static MatExpr cv::Mat::zeros(Size size, int type);
参数说明:
- size: 生成的Mat的尺寸
- type:生产的Mat的类型,这里用CV_8UC1,表示8bit,uchar,1 个通道。
splitChannels[2] = Mat::zeros(splitChannels[2].size(), CV_8UC1);
这条语句是把分割后的通道splitChannels[2]全部置零。
3. merge函数,合并通道
函数原型:
void cv::merge(const Mat* mv, size_t count, OutputArray dst);
参数说明:
- mv: 待合并的通道
- count: 合并通道数
- dst: 输出的Mat变量
opencv3 学习五 - 合并与分割通道的更多相关文章
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- cesium 学习(五) 加载场景模型
cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...
- TweenMax动画库学习(五)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Java基于opencv实现图像数字识别(五)—投影法分割字符
Java基于opencv实现图像数字识别(五)-投影法分割字符 水平投影法 1.水平投影法就是先用一个数组统计出图像每行黑色像素点的个数(二值化的图像): 2.选出一个最优的阀值,根据比这个阀值大或小 ...
- SVG 学习<五> SVG动画
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- Android JNI学习(五)——Demo演示
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- OpenCV3学习笔记
http://blog.csdn.net/u010429424/article/details/73691001 http://blog.csdn.net/zhaoxfxy/article/detai ...
- Halcon学习之三:有关图像通道的函数(R是三通道,B是1通道,G二通道),排列顺序BGR
黑白摄像机会返回每个像素所对应的能量采用结果,这些结果组成了一幅单通道灰度值图像,而对于RGB彩色摄像机,它将返回每个像素所对应的三个采样结果,也就是一幅三通道图像.下面这些是与图像通道有关的函数: ...
- Halcon学习之三:有关图像通道的函数
黑白摄像机会返回每个像素所对应的能量采用结果,这些结果组成了一幅单通道灰度值图像,而对于RGB彩色摄像机,它将返回每个像素所对应的三个采样结果,也就是一幅三通道图像.下面这些是与图像通道有关的函数: ...
随机推荐
- ASPNET MVC Error 403.14
今天创建了一个新的ASPNET MVC 项目部署到本地, 生成成功后在浏览器中输入URL却发现报这个错 解决办法: 因为我的站点是4.5的,但是我没有设置Application Pool所以当前还是默 ...
- PPTP has become obsolete
https://www.ovpn.com/en/blog/pptp-has-become-obsolete/ PPTP has become obsolete What is PPTP? PPTP s ...
- typeof操作符和instanceof操作符的区别 标签: JavaScript 2016-08-01 14:21 113人阅读 评论(
typeof主要用于检测变量是不是基本数据类型 typeof操作符是确定一个变量是字符串.数值.布尔类型,还是undefined的最佳工具.此外,使用typeof操作符检测函数时,会返回"f ...
- Web博文目录
前言 博客写的多了,自己翻起来也费劲,这里就进行一下整合. 以前设想自己做DBA,做运维,没想到最后还要走开发这条路,干一行就爱一行...学的扎实点,工作起来也会轻松.—— 送给奋斗的自己 1 Jav ...
- July 05th 2017 Week 27th Wednesday
No man can make a good coat with bad cloth. 巧妇难为无米之炊. One can't make bricks without straw. There is ...
- Python函数式编程(进阶2)
转载请标明出处: http://www.cnblogs.com/why168888/p/6411915.html 本文出自:[Edwin博客园] Python函数式编程(进阶2) 1. python把 ...
- Ios国际化翻译工具
IOS Translation Tool(IOS国际化翻译工具) 介绍 当IOS项目国际化的时候,手工去翻译每一个字符串是一件非常痛苦的事情.尤其是当项目中存在N多种语言.而且又很难保证,手工翻译的准 ...
- ubuntu环境安装谷歌驱动命令
1.sudo apt-get install chromium-chromedriver. 2.直接下载:http://chromedriver.storage.googleapis.com/inde ...
- Url快捷方式转超链接页
效果:(打了码 可以感受到效果) 问题: 近期发现了之前的一些网页快捷方式文件有50个 查看起来实在不方便 解决: 目前想到了两种 (书签法) (类书签法) 第一种简单快速 (当然有掌握写技巧) ...
- 使用appium在android9.0真机上测试程序时报错command failed shell “ps ‘uiautomator’”的解决办法
appium目前最新的windows版本是1.4.16,在android9.0真机上测试程序时会报错:command failed shell “ps ‘uiautomator’”. 网上大多数人的解 ...