opencv学习-011-图像像素归一化(normalize)

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char *argv[])
{Mat src = imread("E:/Desktop/y.jpg");if (src.empty()) {printf("could not load image...\n");return -1;}namedWindow("input", WINDOW_AUTOSIZE);imshow("input", src);Mat gray, gray_f;cvtColor(src, gray, COLOR_BGR2GRAY);// 转换为浮点数类型数组gray.convertTo(gray, CV_32F);// scale and shift by 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("NORM_MINMAX", dst);// scale and shift by NORM_INFnormalize(gray, dst, 1.0, 0, NORM_INF);result = dst * 255;result.convertTo(dst, CV_8UC1);imshow("NORM_INF", dst);// scale and shift by NORM_L1normalize(gray, dst, 1.0, 0, NORM_L1);result = dst * 10000000;result.convertTo(dst, CV_8UC1);imshow("NORM_L1", dst);// scale and shift by NORM_L2normalize(gray, dst, 1.0, 0, NORM_L2);result = dst * 10000;result.convertTo(dst, CV_8UC1);imshow("NORM_L2", dst);waitKey(0);return 0;
}


  首先概述下什么是图像归一化,其实就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。
其性质:

  1. 归一化处理并没有改变图像的对比度
  2. 归一化处理很简单,假设原图像是8位灰度图像,那么读入的像素矩阵最大值为256,最小值为1,定义矩阵为I,J=I/256,就是归一化的图像矩阵,就是说归一化之后所有的像素值都在[0,1]区间内。
void normalize(  InputArray  src,    // 输入图像InputOutputArray dst,    // 输出图像double   alpha = 1,         // NORM_MINMAX时候低值,1,用来规范值,2.规范范围,并且是下限;double  beta = 0,      // NORM_MINMAX时候高值,只用来规范范围并且是上限;int norm_type = NORM_L2, // 只有alphaint dtype = -1,      // 当为负,输出在大小深度通道数都等于输入,当为正,输出只在深度与输如不同,不同的地方由dtype决定; InputArray     mask = noArray() // mask默认值为空
)

norm_type 提供了四种归一化的方法

  • NORM_MINMAX
  • NORM_INF
  • NORM_L1
  • NORM_L2

最常用的就是NORM_MINMAX归一化方法。

归一化选择的数学公式类型介绍(norm_type) :
设数组中原有{A1,A2,A3…An}
NORM_L1:

NORM_INF:

NORM_L2:

NORM_MINMAX:(AK不属于{max(Ai)},min(Ai),当AK等于max(Ai)时p=1,等于min(Ai)时p=0)

举例说明:

最后dst * 255代表还原为图像的像素值,因为图像像素值为0~255

opencv学习-011-图像像素归一化(normalize)相关推荐

  1. 《opencv学习笔记》-- 矩阵归一化 normalize()函数

    void normalize(InputArray src, OutputArray dst, double alpha = 1, double beta = 0, int norm_type = N ...

  2. OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)

    OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...

  3. opencv学习---计算图像的水平积分投影和垂直积分投影

    opencv学习---计算图像的水平积分投影和垂直积分投影 标签: opencv水平积分投影垂直积分投影 2016-12-07 18:48 1806人阅读 评论(1) 收藏 举报 分类: opencv ...

  4. opencv学习笔记之像素处理

    文章目录 前言 一.多通道的分离合并 多通道分离函数split() 多通道合并函数merge() 二.图像像素统计 计算图像的平均值和标准差 前言 记录opencv有关像素操作的一些函数和功能 一.多 ...

  5. OpenCV学习(2)——图像的数据格式BGR

    OpenCV学习(2)--图像的BGR格式解读 1. opencv读取的图片数据格式 2. BGR含义 1. opencv读取的图片数据格式 opencv读取的图片数据格式为numpy的nparray ...

  6. opencv学习4——图像缩放

    一.通过调用api实现尺寸的改变 cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) 图像尺寸改变 scr:原图片:ds ...

  7. opencv中求图像像素值中位数

    话不多说,直接上源码: int GetMidValue(Mat& input) {int rows = input.rows;int cols = input.cols;float histo ...

  8. 【OpenCV 4】图像像素的归一化

    一.编程环境: OpenCV  4.1.0 IDE Visual Studio 2017 Enterprise (15.9.13) 操作系统 Windows 10 x64 中文专业版 (1903) 二 ...

  9. OpenCV之图像像素归一化

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

最新文章

  1. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
  2. 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串
  3. 修改mint-ui的主题色
  4. LeetCode 963. 最小面积矩形 II
  5. 直击行业痛点!端侧模型部署的成熟解决方案有了!
  6. 【Git】Git修改Repository语言类型
  7. laravel 5.1 添加第三方扩展库
  8. python 正则表达式判断字符串是否为回文_JS使用栈判断给定字符串是否是回文算法示例...
  9. python在什么平台开发_python主要用于开发什么
  10. ORA-01033 的解决
  11. 加拿大计算机硕士gpa不够,加拿大研究生留学申请者绩点低怎么办?这四类应对方法你都知道吗?...
  12. (转)一个用D3D绘制2D图形的例子
  13. 如何将Mac中的备忘录内容导出为 PDF文档?
  14. php文件加锁 lock_sh ,lock_ex
  15. jwt重放攻击_JWT+ASP.NET MVC 时间戳防止重放攻击
  16. 【C语言】数组 - 冒泡排序法
  17. 【附源码】计算机毕业设计SSM小区宠物管理系统
  18. 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
  19. SA方法分析-图书管理系统
  20. 项目生命周期和产品生命周期的不同

热门文章

  1. PDR (Pedestrian Dead Reckoning)行人航位推算基本原理及实现
  2. Mantel test: 两个矩阵相关关系的检验
  3. win10,没有内置录音机,如何解决
  4. 深入理解计算机系统(v3) 第三章、程序的机器级表示(Linux)
  5. 互联网日报 | 5月22日 星期六 | 中国移动5G套餐用户破2亿;京东物流港股IPO认购结束;天猫宣布运费险降费...
  6. ​春节档票房超30亿,互联网资本新旧势力赛跑
  7. 各种各样的搜索(⊙ ▽ ⊙)(1)
  8. 【GameMaker 极速入门】#1环境配置
  9. 05-现代威胁环境下的10个SIEM用例
  10. /usr/bin/ld:找不到 -lxxx