一、编程环境:

OpenCV  4.1.0
IDE Visual Studio 2017 Enterprise (15.9.13)
操作系统 Windows 10 x64 中文专业版 (1903)

二、归一化:

归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在一定范围的之内。

首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。

归一化的具体作用是归纳统一样本的统计分布性。

归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。

归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。

三、归一化的方式:(在 base.hpp 中定义)

在 OpenCV 4.1.0 中定义了 9 种方式:

enum NormTypes {NORM_INF       = 1,NORM_L1        = 2,NORM_L2        = 4,NORM_L2SQR     = 5,NORM_HAMMING   = 6,NORM_HAMMING2  = 7,NORM_TYPE_MASK = 7, NORM_RELATIVE  = 8,NORM_MINMAX    = 32 };

四、OpenCV 归一化函数:normalize()

void normalize( InputArray src, InputOutputArray dst, double alpha = 1, double beta = 0,int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray());

五、示例代码:

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char *argv[])
{Mat src = imread("../images/test.png");if (src.empty()) {printf("不能加载图片!\n");return -1;}namedWindow("1--原图", WINDOW_AUTOSIZE);imshow("1--原图", src);Mat gray;cvtColor(src, gray, COLOR_BGR2GRAY);// 转换为浮点数类型数组gray.convertTo(gray, CV_32F);// 归一化:NORM_MINMAXMat dst = Mat::zeros(gray.size(), CV_32FC1);normalize(gray, dst, 1.0, 0, NORM_MINMAX);Mat result = dst * 255;result.convertTo(dst, CV_8UC1);imshow("2--NORM_MINMAX", dst);// 归一化:NORM_INFnormalize(gray, dst, 1.0, 0, NORM_INF);result = dst * 255;result.convertTo(dst, CV_8UC1);imshow("3--NORM_INF", dst);// 归一化:NORM_L1normalize(gray, dst, 1.0, 0, NORM_L1);result = dst * 10000000;result.convertTo(dst, CV_8UC1);imshow("4--NORM_L1", dst);// 归一化:NORM_L2normalize(gray, dst, 1.0, 0, NORM_L2);result = dst * 10000;result.convertTo(dst, CV_8UC1);imshow("5--NORM_L2", dst);waitKey(0);return 0;
}

六、运行效果:

【OpenCV 4】图像像素的归一化相关推荐

  1. Opencv -- 18图像像素类型转换与归一化

    原文笔记参考(转载)链接:https://www.freesion.com/article/48551470037/. 什么是归一化 概念一:归一化是把需要处理的数据通过某种算法处理后限制在所需要的一 ...

  2. dataset中获取图像的名字_GDAL与OpenCV的图像像素读取格式互相转换

    前言 任务原因,遇到了一个需要GDAL图像像素格式与OpenCV相互转换的问题,解决之后顺便记录一下. 正文 OpenCV(Open Source Computer Vision Library)是一 ...

  3. OpenCV之图像像素归一化

    python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...

  4. opencv之 图像像素操作(如何通过opencv在图像上划线)

    首先我们了解,一个图像,都是一个大的二维数组,每一个元素都是一个像素,若是rgb图像,则该像素还会有rgb三个值,我们读入一个图像 import cv2img = cv2.imread("o ...

  5. opencv 修改图像像素

    #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgu ...

  6. python opencv读取图像像素值_python-opencv--图像像素通道读取及修改

    data/dtype/size/shape/len ''' import cv2 as cv import numpy as np def access_pixes(image): print(ima ...

  7. OpenCV计算图像像素最大值、最小值

      第一种方法: Mat img = imread("./1.jpg", 0); double minVal = 0.0; double maxVal = 0.0; minMaxL ...

  8. 【CV】图像标准化与归一化

    https://mp.weixin.qq.com/s/BH9TrDjuql0fcvuTQmTFWQ 使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两 ...

  9. android都图片mat_计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...

    本文目录 1. 像素读写 2. 图像通道与均值方差计算 3. 算术操作与调整图像的亮度和对比度 4. 基于权重的图像叠加 5. Mat的其他各种像素操作 1. 像素读写 Mat作为图像容器,其数据部分 ...

最新文章

  1. 对面向对象基本原则的总结
  2. Android图片褪色,Android – 使用Alpha褪色动画闪烁图片
  3. 组织与科目等维度构建
  4. AI、ML论文网站、如何阅读论文?
  5. git gui here如何汉化_你不知道的一些在Git使用中的奇技淫巧!
  6. vb中filecopy拷贝文件
  7. javaweb基础知识点记录2
  8. sqlrowset 转化为json_Python 操作 JSON 的 9 个示例
  9. PLSql不用安装Oracle客户端,实现远程连接
  10. win10 系统Docker搭建设备共享平台stf(一)
  11. 网络工程师--网络规划和设计案例分析(4)
  12. Java开发的发展前景和未来规划方向
  13. 《曹全碑》临习方法与释文翻译
  14. Tushare股票数据全生命周期MACD等指标动态获取计算-前复权
  15. 浙大竺可桢学院混合班计算机专业,起底黄峥毕业的浙大混合班:学霸不算牛 个个是学神...
  16. JS中findIndex方法的使用场景以及与find的差别
  17. 经典游戏-贪食蛇(二维数组坐标)
  18. 【Java】什么是面向对象
  19. kerberos 部署
  20. dom元素转化成字符串;字符串html 转换成 实际代码html; innerHTML, outerHTML,

热门文章

  1. 汇编学习笔记-输出月份缩写
  2. 机器人与视觉,基于TCP(工具坐标)偏移
  3. 信捷PLC中Y0用C语言怎么表示,信捷PLC
  4. 护理和计算机哪个专业好,护理专业考研的就业前景和方向
  5. 阿里云大数据工程师ACP认证例题
  6. 基于Arcgis对流域数据的提取及计算
  7. springmvc使用easypoi导出导入Excel表(1):导出Excel表
  8. php程序设置ip黑名单,网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)
  9. 新托福写作:高分词句
  10. Jetson嵌入式系列模型部署-1