首页 > 其他分享 >OpenCV(cv::addWeighted()、cv::threshold())

OpenCV(cv::addWeighted()、cv::threshold())

时间:2024-08-26 15:22:14浏览次数:4  
标签:阈值 double 像素 OpenCV 图像 threshold cv

目录



1. cv::addWeighted()

cv::addWeighted() 是 OpenCV 中用于将两幅图像按指定的权重进行加权求和的函数。主要用途包括图像融合、过渡效果生成等。

函数定义:

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

参数详解:

  • src1: 第一张输入图像(或矩阵)。
  • alpha: 第一张图像的权重(即其比例系数)。
  • src2: 第二张输入图像(或矩阵),其大小和类型应与 src1 相同。
  • beta: 第二张图像的权重。
  • gamma: 添加到最终图像上的常数值,用于整体的亮度调整。
  • dst: 输出图像,计算结果的存储位置。
  • dtype: 输出图像的数据类型。如果未指定(默认为 -1),输出图像的类型与输入图像相同。

公式:

dst(i) = src1(i) * alpha + src2(i) * beta + gamma

  • 图像混合:通过调节 alphabeta 的值,可以实现图像的平滑过渡。例如,当 alpha 为 0.7 而 beta 为 0.3 时,可以认为 70% 的第一张图像和 30% 的第二张图像融合在一起。

例子:

cv::Mat img1, img2, result;
double alpha = 0.7;
double beta = 0.3;
cv::addWeighted(img1, alpha, img2, beta, 0.0, result);

该例子将 img1img2 按比例 0.7 和 0.3 加权相加,得到 result


2. cv::threshold()

cv::threshold() 是 OpenCV 中用于对图像进行二值化处理的函数,可以将图像的灰度值根据阈值分成两类:小于某一阈值的像素设为一个值,大于该阈值的像素设为另一个值。它是图像分割和特征提取中的基础操作。

函数定义:

double cv::threshold(
    InputArray src, 
    OutputArray dst, 
    double thresh, 
    double maxval, 
    int type
);

参数详解:

  • src: 输入图像,通常是单通道灰度图像。
  • dst: 输出图像,类型和尺寸与输入图像相同。
  • thresh: 阈值,根据此值决定像素的分类。
  • maxval: 如果像素值符合条件(如大于或小于阈值),该像素将被赋予的值(通常为 0 或 maxval)。
  • type: 阈值类型,它决定了如何应用阈值。常见类型有:
    • cv::THRESH_BINARY: 大于阈值的像素设置为 maxval,否则设置为 0。
    • cv::THRESH_BINARY_INV: 小于阈值的像素设置为 maxval,否则设置为 0。
    • cv::THRESH_TRUNC: 大于阈值的像素值被截断为阈值,其他像素值保持不变。
    • cv::THRESH_TOZERO: 小于阈值的像素设置为 0,其他像素保持不变。
    • cv::THRESH_TOZERO_INV: 大于阈值的像素设置为 0,其他像素保持不变。

返回值:

函数返回应用的阈值 thresh(对于自适应阈值方法可能有所不同)。

例子:

cv::Mat img, result;
double thresh = 128;
double maxval = 255;
cv::threshold(img, result, thresh, maxval, cv::THRESH_BINARY);

该例子将 img 中的像素值按 128 的阈值二值化,像素值大于 128 的点被设为 255,其他像素设为 0。


3. 总结:

  • cv::addWeighted() 用于将两幅图像按比例融合,是创建平滑过渡和图像融合效果的常用函数。
  • cv::threshold() 用于图像二值化,通过阈值分割图像,常用于对象检测和图像预处理。

标签:阈值,double,像素,OpenCV,图像,threshold,cv
From: https://www.cnblogs.com/keye/p/18381046

相关文章

  • OpenCV开发笔记(七十九):基于Stitcher类实现全景图片拼接
    前言  一个摄像头视野不大的时候,我们希望进行两个视野合并,这样让正视的视野增大,从而可以看到更广阔的标准视野。拼接的方法分为两条路,第一条路是stitcher类,第二条思路是特征点匹配。  本篇使用stitcher匹配,进行两张图来视野合并拼接。 Demo   两张图拼接过......
  • Datawhale AI 夏令营 第五期 CV方向 01
    yolo方案baselinestep1:赛事报名Datawhale(linklearner.com)飞书文档step2:跑通baseline首先在服务器下载代码aptinstallgit-lfsgitlfsinstallgitclonehttps://www.modelscope.cn/datasets/Datawhale/AI_Camp5_baseline_CV.git学习下baseline的代码#读取训......
  • S4 供应商主数据扩建公司代码,采购组织数据(CVI_EI_INBOUND_MAIN)
    参考:https://blog.csdn.net/DeveloperMrMeng/article/details/131331147以模板数据为基础直接扩充对应的公司代码和采购组织数据: reportZED1_TEST1.tables:sscrfields.data:gt_uploadtypealsmex_tablineoccurs0withheaderline.field-symbols:<fs_upload>likeli......
  • OpenCV 图像处理中滤波技术介绍
    VS2022配置OpenCV环境关于OpenCV在VS2022上配置的教程可以参考:VS2022配置OpenCV开发环境详细教程图像处理中滤波技术图像滤波是图像处理中的一种重要技术,用于改善图像质量或提取图像中的特定特征。以下是一些常见的图像滤波技术:均值滤波(MeanFilter):简单且广泛使用的......
  • 《机器学习》—— OpenCV 对图片的各种操作
    文章目录1、安装OpenCV库2、读取、显示、查看图片3、对图片进行切割4、改变图像的大小5、图片打码6、图片组合7、图像运算8、图像加权运算1、安装OpenCV库使用pip是最简单、最快捷的安装方式pipinstallopencv-python==3.4.2还需要安装一个包含了其他一些图像......
  • SP666 VOCV - Con-Junctions 题解
    注意到这个问题具有最优子结构性,考虑树上dp。记$dp[i][0/1]$表示i号节点不放灯或放灯的最小值,$s[i][0/1]$为对应的方案数。那么我们可以进行如下转移:$dp[u][0]=\sum_{u->v}dp[v][1]$$dp[u][1]=\sum_{u->v}\min(dp[v][0],dp[v][1])$在更新对应的dp数组时,我们用......
  • 【逐行注释】基于CV/CT模型的IMM|MATLAB程序|源代码复制后即可运行,无需下载
    订阅专栏后可以直接查看完整的源代码(和注释),无需付费下载或其他的操作。代码复制到MATLAB上面可以得到和我一样的运行结果。文章目录程序概述完整代码与逐行注释运行结果解释按模块分析代码程序概述基于EKF的多模型交互。以CV和CT两个模型进行交互,这里对代码进......
  • FastAdmin目录穿越 CVE-2024-7928
    0x01漏洞描述:FastAdmin是一款基于ThinkPHP+Bootstrap开发的快速后台开发框架。FastAdmin基于Apache2.0开源协议发布,免费且不限制商业使用,目前被广泛应用于各大行业应用后台管理。其接口lang存在目录穿越漏洞,攻击者可通过该漏洞获取系统库敏感信息。0x02影响版本:FastAdmin......
  • opencv-python图像增强十五:高级滤镜实现
    文章目录前言二、鲜食滤镜三、巧克力滤镜三,冷艳滤镜:前言在之前两个滤镜文章中介绍了六种简单的滤镜实现,它们大多都是由一个单独函数实现的接下来介绍五种结合了之前图像增强文章提的的算法的复合滤镜。本案例中的算法来自于文章一,文章二,文章三,感兴趣的小伙伴可以看......
  • 最全!万字长文总结opencv-python常用函数(一)
    文章目录一,简介:二,图像的基础操作:2.1,图像的读取显示与保存2.1.1图像的读取cv2.imread:2.1.2图像的显示cv2.imshow与等待cv2.waitKey:2.1.3图像保存cv2.imwrite:2.2,图像属性获取:2.3,图像裁剪cv2.selectROI:2.4,图像通道的拆分cv2.split:2.5,图像通道的合并cv2.merge:三,图像的数值......