作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

函数原型

void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype = -1);

参数说明

  1. InputArray类型的src1,输入的第一个需要加权的图像。
  2. double类型的alpha,第一个数组的权重。
  3. InputArray类型的src2,输入的第二个需要加权的图像。
  4. double类型的beta,第二个数组的权重。
  5. double类型的gamma,加到权重总和上的标量值。
  6. OutputArray类型的dst,输出的数组。
  7. int类型的dtype,输出阵列的可选深度,默认值-1。

测试代码

#include<iostream>
#include<opencv2/opencv.hpp>
#include<ctime>
using namespace std;
using namespace cv;int main(void)
{cv::Mat test = imread("long.jpg");cv::Mat result, result2;result = cv::Mat::zeros(test.size(), test.type());// 尺寸扩大+双边滤波cv::resize(test, result, cv::Size(0, 0), 4, 4, 2);cv::bilateralFilter(result, result2, 25, 30, 15, 4);imshow("result", result2);// 图像边缘处理Mat blur, usm;Mat grad_x, abs_grad_x, grad_y, abs_grad_y;Scharr(result2, grad_x, CV_16S, 1, 0, 1, 0, BORDER_DEFAULT);convertScaleAbs(grad_x, abs_grad_x);Scharr(result2, grad_y, CV_16S, 0, 1, 1, 0, BORDER_DEFAULT);convertScaleAbs(grad_y, abs_grad_y);// 边缘同原图加权叠加addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, blur);imshow("blur", blur);addWeighted(result2, 1, blur, 0.1, 0, usm);imshow("add-blur", usm);waitKey(0);system("pause");return 0;
}

测试效果

图1 原图

图2 边缘提取

图3 边缘叠加

如测试效果所示,将边缘信息乘0.1叠加至原图上,从效果图可以看出边缘更清晰了~

如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

OpenCV-数组加权和cv::addWeighted相关推荐

  1. Opencv值core组件(二):感兴趣区域选取与计算数组加权和

    文章目录 一.感兴趣区域提取 二.计算数组加权和 一.感兴趣区域提取 Opencv有两种定义ROI区域的方法, 第一种是使用表示矩形区域的Rect,它指定矩形的左上角坐标,和矩形的长宽,以定义一个矩形 ...

  2. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡

    1.问题背景 opencv 官方手册 文档 练习题 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡 2.代码部分 按任意键切换幻灯片 ...

  3. OpenCV:面向python图像运算-图像的加权和

    图像的加权和就是考虑图像相加时候图像的权重. 在OpenCV中提供了cv2.addWeighted函数用来实现加权和的运算. 公式为:cv2.addWeighted(a,b,c,d,e) ac指的是图 ...

  4. 【OpenCV】OpenCV函数精讲之 -- addWeighted()函数(线性混合)

    addWeighted()函数用来计算两个数组(图像阵列)的加权和. 格式如下: void addWeighted(InputArray src1, double alpha, InputArray ...

  5. cv.add cv.addWeighted 的区别

    图像加法 cv.add 您可以通过OpenCV函数 cv.add() 或仅通过numpy操作 res = img1 + img2 添加两个图像.两个 图像应具有相同的深度和类型,或者第二个图像可以只是 ...

  6. OpenCV 图像加载和显示

    OpenCV 图像加载和显示 OpenCV 图像加载和显示 加载图像(使用cv :: imread) 创建一个名为OpenCV的窗口(使用cv :: namedWindow) 在OpenCV窗口中显示 ...

  7. python使用openCV图像加载(转化为灰度图像)、Canny边缘检测器检测图像的边缘(Detect Edges)

    python使用openCV图像加载(转化为灰度图像).Canny边缘检测器检测图像的边缘(Detect Edges) 目录

  8. python使用openCV图像加载(转化为灰度图像)、使用filter2D函数对图像进行锐化(Sharpen Images)

    python使用openCV图像加载(转化为灰度图像).使用filter2D函数对图像进行锐化(Sharpen Images) 目录

  9. OpenCV用thrust使用cv :: cuda :: GpuMat

    OpenCV用thrust使用cv :: cuda :: GpuMat 用thrust使用cv :: cuda :: GpuMat 目标 将GpuMat包装到thrust迭代器中 用随机数填充GpuM ...

最新文章

  1. mysql5.5.42指定数据库同步操作
  2. HDFS简单介绍及用C语言訪问HDFS接口操作实践
  3. 皮一皮:师太请自重...
  4. 机器学习知识点(三十五)蒙特卡罗方法
  5. 2022-01-04
  6. ARKit从入门到精通(7)-ARCamera介绍
  7. 数据结构【双指针算法】
  8. .net如何获取文件夹中的文件_access递归列出文件夹中的文件
  9. Jqgrid pager 关于“local” dataType 动态加载数据分页的研究(没好用的研究结果)...
  10. 数据中台不是企业的万能妙药
  11. Lotus开发之Lotus Notes中域的验证
  12. cmake与ninja构建编译(二)
  13. WCF分布式开发常见错误解决(1):添加服务引用出错
  14. mysql 从入门到精通 pdf_MySQL5.7从入门到精通PDF完整版+随书教学视频
  15. 网关和路由器有什么区别
  16. 龙智集团赢得2022年Atlassian与AWS云销售竞赛
  17. 学校计算机管理员考核方案,计算机科学与工程学院班级创建目标管理实施细则...
  18. 用了TCP协议,就一定不会丢包吗?
  19. 回到过去,寻找曾经的你!(搜索你关心的网站最初的样子)
  20. CTFSHOW-misc

热门文章

  1. linux命令最终篇
  2. DataFrame.apply()
  3. ssh连接出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  4. android 项目 功能 源码 eclipse的
  5. setUserVisibleHint-- fragment真正的onResume和onPause方法
  6. POJ 1080 Human Gene Functions(DP:LCS)
  7. 【推荐算法】协同过滤算法——基于用户 Java实现
  8. python 版本控制及django,git的使用
  9. wifi的web 认证。
  10. python中各种@property、@xxx.setter、@classmethod、@staticmethod 都是些啥啊?