opencv学习-011-图像像素归一化(normalize)
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;
}
首先概述下什么是图像归一化,其实就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。
其性质:
- 归一化处理并没有改变图像的对比度
- 归一化处理很简单,假设原图像是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)相关推荐
- 《opencv学习笔记》-- 矩阵归一化 normalize()函数
void normalize(InputArray src, OutputArray dst, double alpha = 1, double beta = 0, int norm_type = N ...
- OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)
OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...
- opencv学习---计算图像的水平积分投影和垂直积分投影
opencv学习---计算图像的水平积分投影和垂直积分投影 标签: opencv水平积分投影垂直积分投影 2016-12-07 18:48 1806人阅读 评论(1) 收藏 举报 分类: opencv ...
- opencv学习笔记之像素处理
文章目录 前言 一.多通道的分离合并 多通道分离函数split() 多通道合并函数merge() 二.图像像素统计 计算图像的平均值和标准差 前言 记录opencv有关像素操作的一些函数和功能 一.多 ...
- OpenCV学习(2)——图像的数据格式BGR
OpenCV学习(2)--图像的BGR格式解读 1. opencv读取的图片数据格式 2. BGR含义 1. opencv读取的图片数据格式 opencv读取的图片数据格式为numpy的nparray ...
- opencv学习4——图像缩放
一.通过调用api实现尺寸的改变 cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) 图像尺寸改变 scr:原图片:ds ...
- opencv中求图像像素值中位数
话不多说,直接上源码: int GetMidValue(Mat& input) {int rows = input.rows;int cols = input.cols;float histo ...
- 【OpenCV 4】图像像素的归一化
一.编程环境: OpenCV 4.1.0 IDE Visual Studio 2017 Enterprise (15.9.13) 操作系统 Windows 10 x64 中文专业版 (1903) 二 ...
- OpenCV之图像像素归一化
python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...
最新文章
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
- 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串
- 修改mint-ui的主题色
- LeetCode 963. 最小面积矩形 II
- 直击行业痛点!端侧模型部署的成熟解决方案有了!
- 【Git】Git修改Repository语言类型
- laravel 5.1 添加第三方扩展库
- python 正则表达式判断字符串是否为回文_JS使用栈判断给定字符串是否是回文算法示例...
- python在什么平台开发_python主要用于开发什么
- ORA-01033 的解决
- 加拿大计算机硕士gpa不够,加拿大研究生留学申请者绩点低怎么办?这四类应对方法你都知道吗?...
- (转)一个用D3D绘制2D图形的例子
- 如何将Mac中的备忘录内容导出为 PDF文档?
- php文件加锁 lock_sh ,lock_ex
- jwt重放攻击_JWT+ASP.NET MVC 时间戳防止重放攻击
- 【C语言】数组 - 冒泡排序法
- 【附源码】计算机毕业设计SSM小区宠物管理系统
- 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
- SA方法分析-图书管理系统
- 项目生命周期和产品生命周期的不同
热门文章
- PDR (Pedestrian Dead Reckoning)行人航位推算基本原理及实现
- Mantel test: 两个矩阵相关关系的检验
- win10,没有内置录音机,如何解决
- 深入理解计算机系统(v3) 第三章、程序的机器级表示(Linux)
- 互联网日报 | 5月22日 星期六 | 中国移动5G套餐用户破2亿;京东物流港股IPO认购结束;天猫宣布运费险降费...
- ​春节档票房超30亿,互联网资本新旧势力赛跑
- 各种各样的搜索(⊙ ▽ ⊙)(1)
- 【GameMaker 极速入门】#1环境配置
- 05-现代威胁环境下的10个SIEM用例
- /usr/bin/ld:找不到 -lxxx