OpenCV normalize() 函数详解及用法示例

        OpenCV的normalize函数用于对数组(图像)进行归一化处理,即将数组中的元素缩放到一个指定的范围或具有一个特定的标准(如均值和标准差)。它有两个原型函数, 如下:

Normalize()规范化数组的范数或值范围。当normType=NORM_INF、NORM_L1或NORM_L2时,函数cv::normalize对输入数组元素进行归一化和移位,使得∥dst∥Lp=alpha(其中p=Inf、1或2);或者当normType=NORM_MINMAX时minIdst(I)=alpha,maxIdst(I)=beta(仅适用于密集数组)。可选掩码指定要标准化的子数组。这意味着在子数组上计算范数或 min-n-max,然后修改该子数组以进行归一化。如果您只想使用掩码来计算范数或最小值-最大值但修改整个数组,则可以使用范数和 Mat::convertTo。

        

函数参数:

       src 输入数组(单通道或多通道)。

       dst 输出数组,与输入数组有相同的形状和类型(或者根据dtype参数指定的类型)。

alpha在范围归一化的情况下,要归一化到的范数值或范围下限(normType=NORM_MINMAX时)。

       beta 范围归一化情况下的范围上限(仅当NORM_MINMAX类型被使用时才需要);它不用于范数标准化。

       normal_type 标准化类型,有以下几种:

        dtype 当为负数时,输出数组与 src 具有相同的类型;否则,它具有与 src 相同的通道数和深度 =CV_MAT_DEPTH(dtype)。

        mask 可选操作掩码。

这是一个重载成员函数,为方便起见而提供。它与上述函数的不同之处仅在于它接受的参数。

        示例:

        新建一个控制台应用程序Project,在源程序中添加如下代码:

// normalizeTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
    
    vector<double> data = {1,2,3,4,10};
    vector<double> ndata;
    int length = data.size();

    cout << "Data:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << data[i] << "  ";
    }
    cout << endl;
    cout << endl;

    //normal_type: NORM_INF
    normalize(data, ndata, 1.0, 0, NORM_INF);
    cout << "NORM_INF result:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << ndata[i];
    }
    cout << endl;
    cout << endl;

    //normal_type: NORM_L1
    normalize(data, ndata, 1.0, 0, NORM_L1);
    cout << "NORM_L1 result:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << ndata[i]<<"  ";
    }
    cout << endl;
    cout << endl;

    //normal_type: NORM_L2
    normalize(data, ndata, 1.0, 0, NORM_L2);
    cout << "NORM_L2 result:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << ndata[i]<<"  ";
    }
    cout << endl;
    cout << endl;

    //normal_type: NORM_MINMAX 1
    normalize(data, ndata, 1.0, 0, NORM_MINMAX);
    cout << "NORM_MINMAX 1 result:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << ndata[i] << "  ";
    }
    cout << endl;
    cout << endl;

    //normal_type: NORM_MINMAX 1
    normalize(data, ndata, 0, 255, NORM_MINMAX);
    cout << "NORM_MINMAX 2 result:" << endl;
    for (int i = 0; i < length; i++)
    {
        cout << ndata[i] << "  ";
    }
    

    return 0;
}

试运行,结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/885646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

制造企业为何需要PLM系统?PLM系统解决方案对制造业重要性分析

制造企业为何需要PLM系统&#xff1f;PLM系统解决方案对制造业重要性分析 新华社9月23日消息&#xff0c;据全国组织机构统一社会信用代码数据服务中心统计&#xff0c;我国制造业企业总量突破600万家。数据显示&#xff0c;2024年1至8月&#xff0c;我国制造业企业数量呈现稳…

简单线性回归分析-基于R语言

本题中&#xff0c;在不含截距的简单线性回归中&#xff0c;用零假设对统计量进行假设检验。首先&#xff0c;我们使用下面方法生成预测变量x和响应变量y。 set.seed(1) x <- rnorm(100) y <- 2*xrnorm(100) &#xff08;a&#xff09;不含截距的线性回归模型构建。 &…

计算机视觉综述

大家好&#xff0c;今天&#xff0c;我们将一起探讨计算机视觉的基本概念、发展历程、关键技术以及未来趋势。计算机视觉是人工智能的一个重要分支&#xff0c;旨在使计算机能够“看”懂图像和视频&#xff0c;从而完成各种复杂的任务。无论你是对这个领域感兴趣的新手&#xf…

Linux操作系统中MongoDB

1、什么是MongoDB 1、非关系型数据库 NoSQL&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#xff0c;传统的关系数据库在处理web2.0网站&#xff0c;特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心&#xff0c;出现了很多难以克服的问…

SpringBoot整合JPA详解

SpringBoot版本是2.0以上(2.6.13) JDK是1.8 一、依赖 <dependencies><!-- jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><!--…

C# C++ 笔记

第一阶段知识总结 lunix系统操作 1、基础命令 &#xff08;1&#xff09;cd cd /[目录名] 打开指定文件目录 cd .. 返回上一级目录 cd - 返回并显示上一次目录 cd ~ 切换到当前用户的家目录 &#xff08;2&#xff09;pwd pwd 查看当前所在目录路径 pwd -L 打印当前物理…

Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化

前篇&#xff1a;Unity实战案例全解析&#xff1a;RTS游戏的框选和阵型功能&#xff08;4&#xff09;阵型功能-CSDN博客 本案例来源于unity唐老狮&#xff0c;有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享&#xff0c;并未无师自通&#x…

ARM Process state -- SPSR

Holds the saved process state for the current mode. 保存当前模式的已保存进程状态。 N, bit [31] Set to the value of PSTATE.N on taking an exception to the current mode, and copied to PSTATE.N on executing an exception return operation in the current mod…

袋鼠云数据资产平台:数据模型标准化建表重构升级

数据模型是什么&#xff1f;简单来说&#xff0c;数据模型是用来组织和管理数据的一种方式。它为构建高效且可靠的信息系统提供了基础&#xff0c;不仅决定了如何存储和管理数据&#xff0c;还直接影响系统的性能和可扩展性。 想要建立一个良好的数据模型&#xff0c;设计时需…

链表的基础知识

文章目录 概要整体架构流程 小结 概要 链表是一种常见的数据结构&#xff0c;它通过节点之间的连接关系实现数据的存储和访问。链表由一系列节点&#xff08;Node&#xff09;组成&#xff0c;每个节点包含数据和指向下一个节点的指针。链表的特点是物理存储单元上非连续、非顺…

Qt的互斥量用法

目的 互斥量的概念 互斥量是一个可以处于两态之一的变量:解锁和加锁。这样&#xff0c;只需要一个二进制位表示它&#xff0c;不过实际上&#xff0c;常常使用一个整型量&#xff0c;0表示解锁&#xff0c;而其他所有的值则表示加锁。互斥量使用两个过程。当一个线程(或进程)…

网络编程,端口号,网络字节序,udp

前面一篇我们讲了网络的基础&#xff0c;网络协议栈是什么样的&#xff0c;数据如何流动传输的&#xff1b;接下来这篇&#xff0c;我们将进行实践操作&#xff0c;真正的让数据跨网络进行传输&#xff1b; 1.网络编程储备知识 1.1 初步认识网络编程 首先我们需要知道我们的…

Java基础 3. 面向对象

Java基础 3. 面向对象 文章目录 Java基础 3. 面向对象3.1. 面向对象3.2. 对象的创建和使用3.3. 封装3.4. 构造方法3.5. this关键字3.6. static关键字JVM体系结构 [^现阶段不用掌握]3.7. 单例模式 [^初级]3.8. 继承3.9. 方法覆盖3.10. 多态3.11. super关键字3.12. final关键字3.…

你的虚拟猫娘女友,快来领取!--文心智能体平台

文章目录 一、引言二、赛事介绍2.1 简介2.2 比赛时间2.3 大赛具体链接2.4 第一期赛题 三、智能体创建流程3.1 进入文心智能体平台3.1 创建智能体3.1 虚拟猫娘女友特性3.1 智能体调优 四、引言智能体测试五、结语 一、引言 我是热爱生活的通信汪&#xff0c;今天这篇博文记录一…

[CSP-J 2022] 解密

题目来源&#xff1a;洛谷题库 [CSP-J 2022] 解密 题目描述 给定一个正整数 k k k&#xff0c;有 k k k 次询问&#xff0c;每次给定三个正整数 n i , e i , d i n_i, e_i, d_i ni​,ei​,di​&#xff0c;求两个正整数 p i , q i p_i, q_i pi​,qi​&#xff0c;使 n …

C语言 | Leetcode C语言题解之第448题找到所有数组中消失的数字

题目&#xff1a; 题解&#xff1a; int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {for (int i 0; i < numsSize; i) {int x (nums[i] - 1) % numsSize;nums[x] numsSize;}int* ret malloc(sizeof(int) * numsSize);*returnSize 0;for (in…

“2024光明多多垂直农业挑战赛”决赛启动成功举办

由光明食品集团所属上花集团的光明花博邨基地&#xff0c;与拼多多携手&#xff0c;联合中国农业大学、浙江大学等共同举办的“2024光明多多垂直农业挑战赛暨第四届多多农研科技大赛”于9月20-21日正式启动决赛。来自上海交大、中国农大、上海农科院、国家农业智能装备工程技术…

基于Node.js+Express+MySQL+VUE科研成果网站发布查看科研信息科研成果论文下载免费安装部署

目录 1.技术选型‌ ‌2.功能设计‌ ‌3.系统架构‌ ‌4.开发流程‌ 5.开发背景 6.开发目标 7.技术可行性 8.功能可行性 8.1功能图 8.2 界面设计 8.3 部分代码 构建一个基于Spring Boot、Java Web、J2EE、MySQL数据库以及Vue前后端分离的科研成果网站&#xff0c;可…

Unity 2D RPG Kit 学习笔记

学习资料&#xff1a; B站教学视频&#xff1a;https://www.bilibili.com/video/BV1dC4y1o7A5?p1&vd_source707ec8983cc32e6e065d5496a7f79ee6 2D RPG Kit Documentation.pdf文档 1、2D RPG Kit Documentation文档 1.1、Scenes/TitleScreen 开始菜单工程 1.2、https://it…

铨顺宏科技携RTLS+RFID技术亮相工博会!

中国国际工业博览会盛大开幕&#xff01; 铨顺宏科技展亮点速递 铨顺宏科技展位号&#xff1a;F117 中国国际博览会今日开幕&#xff0c;铨顺宏科技携创新产品亮相&#xff0c;吸引众多参观者。 我们珍视此次国际盛会&#xff0c;将全力以赴确保最佳体验。 工作人员热情解答…