图像归一化

图像归一化normalization

烈酒焚心 提交于 2019-12-08 02:32:39
一、图像归一化的好处: 1、转换成标准模式,防止仿射变换的影响。 2、减小几何变换的影响。 3、加快梯度下降求最优解的速度。 二、图像归一化的方法 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下: y=log10(x) 说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下: y=atan(x)*2/PI 三、线性函数转换代码(matlab) %% 图像归一化 clc clear close all image = imread('E:\裂纹\a\3\53.bmp'); image = rgb2gray(image); figure imshow(image); image = double(image); image_minGray = min(min(image)); image_maxGray = max(max(image)); image_distance = image_maxGray-image_minGray; min_Gray = 0; max_Gray = 255; image_normalization = (image-image_minGray)/image

图像归一化

前提是你 提交于 2019-12-08 02:32:29
一、简介 图像归一化是计算机视觉、模式识别等领域广泛使用的一种技术。所谓图像归一化, 就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。 近年来, 基于矩的图像归一化技术受到了人们的普遍关注, 其基本工作原理为: 首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个标准形式的图像(该图像与仿射变换无关)。 一般说来, 基于矩的图像归一化过程包括 4 个步骤 即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换。图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。以下你要知道的: 1.归一化处理并没有改变图像的对比度 2.归一化处理很简单,假设原图像是8位灰度图像,那么读入的像素矩阵最大值为256,最小值为1,定义矩阵为I,J=I/256,就是归一化的图像矩阵,就是说归一化之后所有的像素值都在[0,1]区间内。 二、什么是归一化 归一化就是通过一系列变换(即利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响)

图像预处理:去均值、归一化、PCA、白化

随声附和 提交于 2019-12-08 02:28:52
为什么要进行图像预处理?大概是为了 (1)使得原始图像符合某种既定规则,便于后续处理。 (2)去除图像中的影响后续处理精度、准确度的因素,如噪声等。 (3)在正式处理前进行处理,减少后续的运算量,加速收敛(为什么会提高收敛速度,可以参见这篇博文 图像数据预处理对收敛速度的影响 ),提高后续步骤的可靠性。 大概分为去均值、归一化、PCA、白化几种。 假定数据表示成矩阵为X,其中我们假定X是[N*D]维矩阵,N是样本数据量,D为单张图片的数据向量长度。假设要处理的图像是5*5的彩色图像,那么D即5*5*3=75(因为彩色图像有三个通道),假设N=1000,那么X就是10000*75的矩阵,即1000行图像的信息,每一行代表一个图像的信息。 去均值: 对待训练的每一张图片的特征,都减去全部训练集图片的特征均值,这么做的直观意义就是,我们把输入数据各个维度的数据都中心化到0了(比如数据集3 、5 、7,其均值为5,各减去5后的数据集变为-2、0、2,此时平均值为0)。这么做的目的是减小计算量,把数据从原先的标准坐标系下的一个个向量组成的矩阵,变成以这些向量的均值为原点建立的坐标系,使用python的numpy工具包,这一步可以用X -= np.mean(X, axis = 0)轻松实现。 归一化: 归一化是保证所有的维度上数据都在一个变化幅度上。 比如预测房价的例子中

OpenCV之图像归一化(normalize)

为君一笑 提交于 2019-12-08 02:27:44
什么图像归一化 通俗地讲就是将矩阵的值通过某种方式变到某一个区间内 图像归一化的作用 目前能理解的就是归一化到某个区间便于处理,希望高人可以指点 opencv文档中的介绍 C++: void normalize(InputArray src, InputOutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() ) C++: void normalize(const SparseMat& src, SparseMat& dst, double alpha, int normType) Python: cv2.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]]) → dst Parameters: src – input array. dst – output array of the same size as src . alpha – norm value to normalize to or the lower range boundary in case of the range normalization. beta – upper

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

二次信任 提交于 2019-12-08 02:25:30
https://mp.weixin.qq.com/s/BH9TrDjuql0fcvuTQmTFWQ 使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。 一:图像标准化处理 标准化处理的公式如下: tensorflow中对图像标准化预处理的API函数如下: tf.image.per_image_standardization(image) - image 参数表示一个三维的张量(tensor) 分别对应图像高、宽、通道数目(height, width, channels) 函数返回处理以后的图像,大小与通道数目与原图像保持一致。 使用opencv+tensorflow对图像进行标准化处理的代码演示如下: 、 运行效果 解释 图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一 二:图像归一化处理 图像归一化最常见的就是最大最小值归一化方法,公式如下: 基于OpenCV实现图像最大最小值归一化的代码演示如下: 原图像素值输出 归一化之后像素值: 解释 原图与归一化之后的运行结果完全一致

特征缩放(Feature Scaling)

时光怂恿深爱的人放手 提交于 2019-11-26 23:54:58
特征缩放的几种方法: (1)最大最小值 归一化(min-max normalization) : 将数值范围缩放到 [0, 1] 区间里 (2)均值归一化(mean normalization) : 将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0 (3)标准化 / z值归一化( s tandardization / z-score normalization ) :将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布(先减去均值来对特征进行 中心化 mean centering 处理,再除以标准差进行缩放) (4) 最大绝对值归一化(max abs normalization ) : 也就是将数值 变为单位长度(scaling to unit length) ,将数值范围缩放到 [-1, 1] 区间里 (5)稳键归一化(robust normalization): 先减去中位数,再除以四分位间距(interquartile range),因为不涉及极值,因此在数据里有异常值的情况下表现比较稳健 * 有一些时候,只对数据进行中心化和缩放是不够的,还需对数据进行 白化(whitening) 处理来消除特征间的线性相关性。 归一化和标准化的区别: 归一化(normalization):归一化是将样本的特征值转换到同一量纲下,把数据映射到[0,1]或者[-1

openCV实现图像归一化

廉价感情. 提交于 2019-11-26 06:44:56
今天下午师弟问了一个关于图像归一化的问题,因此小编写了关于图像归一化的代码,比如一个文件夹下有多幅图像,每幅图像的大小不一致,如果想把这些图像归一化为相同大小的图像,就涉及到归一化的问题,现分享代码如下: #include <opencv2/opencv.hpp> #include "highgui.h" #include <iostream> using namespace std; using namespace cv; int main() { IplImage *src; src = cvLoadImage("100000.jpg"); cvShowImage("100000",src); //cvReleaseImage(&src); IplImage* gray_image; gray_image = cvCreateImage(cvGetSize(src),8,1); cvCvtColor(src,gray_image,CV_BGR2GRAY); //cvShowImage("GrayImage",gray_image); IplImage* norm_image; CvSize norm_cvsize; norm_cvsize.width = 480; //目标图像的宽 norm_cvsize.height = 640; //目标图像的高 cout<<"开始归一化"