OpenCV-数组加权和cv::addWeighted

简介: OpenCV-数组加权和cv::addWeighted

函数原型

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

参数说明

InputArray类型的src1,输入的第一个需要加权的图像。

double类型的alpha,第一个数组的权重。

InputArray类型的src2,输入的第二个需要加权的图像。

double类型的beta,第二个数组的权重。

double类型的gamma,加到权重总和上的标量值。

OutputArray类型的dst,输出的数组。

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叠加至原图上,从效果图可以看出边缘更清晰了~

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

相关文章
|
1月前
|
计算机视觉 Python
Opencv学习笔记(一):如何将得到的图片保存在指定目录以及如何将文件夹里所有图片以数组形式输出
这篇博客介绍了如何使用OpenCV库在Python中将图片保存到指定目录,以及如何将文件夹中的所有图片读取并以数组形式输出。
137 0
Opencv学习笔记(一):如何将得到的图片保存在指定目录以及如何将文件夹里所有图片以数组形式输出
|
4月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
68 4
|
3月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
3月前
|
计算机视觉
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
38 0
|
6月前
|
计算机视觉 开发者 Python
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
198 0
|
计算机视觉
OpenCV-模板匹配cv::matchTemplate
OpenCV-模板匹配cv::matchTemplate
104 0
|
计算机视觉
OpenCV-矩形边框cv::boundingRect
OpenCV-矩形边框cv::boundingRect
104 0
|
6月前
|
计算机视觉
OpenCV报错: cv::Exception,位于内存位置 0x00000078226FEE58 处。
OpenCV报错: cv::Exception,位于内存位置 0x00000078226FEE58 处。
|
6月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.10、addWeighted设置图片透明度
OpenCV这么简单为啥不学——1.10、addWeighted设置图片透明度
80 0
|
6月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.2、图片截取(数组截取)
OpenCV这么简单为啥不学——1.2、图片截取(数组截取)
45 0