opencv(三)对图像进行简单算术运算(加减乘除)
opencv可以将图像以不同的方式组合,图像其实就是一般的矩阵,所以它们可以做加减乘除。opencv提供了各种图像算术操作符。
1【首先我们对两幅图像进行操作】
当我们需要一些图像特效或者在图像上叠加信息时,就需要用到图像加法。我们只需调用cv::add函数就可以完成,更准确的说是cv::addWeighted()函数来完成图像的加法。cv::addWeighted(image, 0.7, imag1, 0.9, 0.,result);
效果如下
所有的二值算术函数工作方式都是一样的,他接受两个输入变量和一个输出变量。在一些情况下,还需要指定权重作为运算中的标量因子。每种函数都有几个不同的形式:
//c[i] = a[i] + b[i];
cv::add(imageA, imageB, resultC);
//c[i] = a[i] + k;
cv::add(imageA, cv::Scalar(k), resultC);
//c[i] = k1 * a[i] + k2 * b[i] + k3;
cv::addWeighted(imageA, k1, imageB, k2, k3, resultC);
//c[i] = k * a[i] + b[i];
cv::scaleAdd(imageA, k,imageB,resultC);
//对某些函数,还可以指定一个图像的掩模
//if(mast[i]) c[i] = a[i] + b[i]
cv::add(imageA,imageB, resultC, mask);
参与运算的图像必须相同的大小和类型(输出图像如果合适不符,那么他会被重新分配)同样,由于运算是逐像素进行的,输入图像之一也可以作为输出图像。
opencv给我们重载了操作符,上面的操作可以换成下面:reslut = 0.7 * image + 0.9 * image,效果是一样的。有时候我们想对彩色图像的一个通道进行运算,我们可以使用cv::split函数将彩色图像的三个通道分别拷贝到三个独立的cv::Mat实例中,然后对其中一个通道单独处理:
std::vector(cv::Mat) planes;
cv::split(image, planes);
planes[0] += image1;
cv::merge(planes, result);
函数cv::merge是cv::splitr的对偶运算,它将三个单通道合并一个彩色通道。
其他操作基本都和加运算差不多,这里就不一一介绍了。
opencv(三)对图像进行简单算术运算(加减乘除)相关推荐
- opencv 三通道图像转四通道透明图像
添加透明通道. 使用split(),merge(),合成图像通道. 把3通道的rgb转为4通道,设置alpha=0.并保存图像. #include <opencv2/opencv.hpp> ...
- Opencv学习笔记 图像特效 简单铅笔/卡通/马赛克/毛玻璃/Lomography/简单磨皮等效果
一.铅笔画滤镜 铅笔画滤镜主要是提取出图片中梯度比较高的部分,也就是边缘检测 二.卡通画特效 卡通画特效主要由三部分组成 1.提取图像中轮廓 => edges 2.使用bilateral 滤波在 ...
- 10.马赛克原理之简单提高图像算法性能(颜色空间缩减和计时函数) --- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 关键词:颜色空间缩减和计时函数[两个简便的计时函数-getTickCount()和getTickFrequency()] 计时函数用途:计算耗时工作 颜色 ...
- C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)
C++下opencv学习笔记(一)(图像的简单读取丶显示与存储) 前言 学习C++ OpenCV,第一需要具备面向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门.觉得自己基础已经有了可以 ...
- OpenCV python 提取图像内的三色
OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...
- OpenCV优化:图像的遍历4种方式
小知识:反色 反色原理很简单,在一个rgb色彩空间中,可将任何一种颜色看成笛卡尔坐标中的一个点,对于任意点,反色就是计算以(128, 128,128)为中心时该点的对称点,比如rgb(100, 150 ...
- OpenCV 【十二】OpenCV如何扫描图像、利用查找表和计时
目录 OpenCV如何扫描图像.利用查找表和计时 1.函数计算时间测试case 2. Mat图像的存储机理 3. 像素遍历的3--4种方式 4. 实例 OpenCV如何扫描图像.利用查找表和计时 如何 ...
- 解密 | OpenCV加载图像大小是有限制的 ?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 问题来由 最近有人问一个问题,就是它有个大小800MB的图像文件, ...
- OpenCV访问Mat图像中每个像素的值
原文:http://blog.csdn.net/xiaowei_cqu/article/details/7771760 matlab中, a=[1,2,3;4,5,6;7,8,9] a(1,2) 第一 ...
最新文章
- java定时执行一段代码
- Mac OS X中配置Apache
- sklearn自学指南(part13)--贝叶斯回归
- 棒棒糖 宏_棒棒糖图表
- Linux 命令整理
- .NET,你忘记了么?(六)——再谈String
- jquery判断是否隐藏
- python常用算法有哪些_python常见排序算法基础教程
- 阿里云基础产品技术月刊 2018年12月
- 汇编语言10堆栈平衡
- icem二维非结构网格划分_Ansys Icem CFD网格划分实例详解PDF及附件
- 切换进程 切换线程
- 开源3D建模软件FreeCAD基础介绍与入门
- python开发_filecmp
- 直线端点画垂线lisp_利用lisp给cad直线取整?
- 浅谈Android中的Fragment
- Ray Tracing
- 从如“何看待人工智能“”开始
- 有关华为的七大猜想:或在国内屈居老二
- 长度厘米转换c语言程序,标准长度单位换算c程序设计.doc
热门文章
- 京东网站顶部导航条 (练习) HTML+CSS
- “程序猿”面试篇(一)聊项目
- 怎么用python启动谷歌浏览器_Selenium 基于python 安装以及配置谷歌浏览器启动
- 硬件防火墙 与软件防火墙
- SAS学习之基本统计过程
- 「大数据的关键思考系列」15:阿里巴巴的大数据实践(1)
- Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法
- 《年度区块链产业发展报告(2020)》重磅发布,透视产业应用现状与未来
- pg 百万数据表 添加序号 20秒轻松搞定
- C# 制作贪吃蛇小游戏,最简单的实现