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彩色摄像机,它将返回每个像素所对应的三个采样结果,也就是一幅三通道图像.下面这些是与图像通道有关的函数: ...
随机推荐
- mongodb 3.4复制集配置
1:启动三个实例 /bin/mongod --config /home/mongodb/db27017/mongodb27017.conf /bin/mongod --config /home/mon ...
- jdbc 块提取方式
最近使用jdbc方式查询数据,保存为csv文件中.当然你可以在pl/sql中直接查出来,copy to excel就好了.但我想通过程序实现 1 @Test 2 public void test() ...
- 加密算法IV的作用
使用随机数产生的初始化向量才能达到语义安全(散列函数与消息验证码也有相同要求),并让攻击者难以对同一把密钥的密文进行破解 初始化向量的值依密码算法而不同.最基本的要求是“唯一性”,也就是说同一把密钥不 ...
- 【Leetcode】【Medium】Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- shell单引号双引号详解
linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了) " "(双引号)与 ' '(单引号)的区别 你在shell prompt(shell 提示)后面敲 ...
- ZT 段祺瑞终生忏悔枪杀学生?
段祺瑞终生忏悔枪杀学生?http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece76310528c315c4380146080955468d4e4 ...
- 薄弱的交互页面之新浪微博到博客的储存型xss漏洞
首先分享一片博文到微博,然后 在微博评论xss code 最后回到博客点击举报就触发xss了 点击举报 Xss之2 首先还是分享一片博文到微博,然后评论xsscode 回到我的博客个人中心,查看评论 ...
- vim c++插件clang_complete
地址 http://www.vim.org/scripts/script.php?script_id=3302 以后应该会用到的,先记下:需要安装clang编译器.
- nrf52840蓝牙BLE5.0空中数据解析
一.基础知识: 我没找到蓝牙5.0的ATT数据格式图片,在蓝牙4.0的基础上做修改吧,如下图所示: 二.测试与分析: 参数设置: data length = 251字节,MTU = 247字节, ...
- 【bootstrap】插件
1.bootstrap.js 和 bootstrap.min.js 都包含了所有的插件. 2.命名空间:即域:域内成员的有效范围.超出范围就是无效. 3.通过 data 属性 API 就能使用所有的 ...