图像白化处理

news/2024/11/7 14:31:27/

1.白化处理的作用
图像白化(whitening)可用于对过度曝光或低曝光的图片进行处理,减少光线对数据的动态影响,下图所示,左图是过分曝光,右图是白化后的结果;

在这里插入图片描述

2.白化处理的原理
处理的方式就是将图片分布变换为(0,1)的高斯分布。

3.白化处理的代码

 def whitening(self, img_path):img = cv2.imread(img_path)img = img / 255.0m, dev = cv2.meanStdDev(img)  # 返回均值和方差,分别对应3个通道img[:, :, 0] = (img[:, :, 0] - m[0]) / (dev[0]+1e-6)img[:, :, 1] = (img[:, :, 1] - m[1]) / (dev[1] + 1e-6)img[:, :, 2] = (img[:, :, 2] - m[2]) / (dev[2] + 1e-6)# 将 像素值 低于 值域区间[0, 255] 的 像素点 置0img = img*255img *= (img > 0)# 将 像素值 高于 值域区间[0, 255] 的 像素点 置255img = img * (img <= 255) + 255 * (img > 255)img = img.astype(np.uint8)cv2.imshow('result', img)cv2.waitKey(1000)cv2.destroyAllWindows()cv2.imwrite('result.jpg',img)

Pytorch中的线性变换可用于白化处理:

class torchvision.transforms.LinearTransformation(transformation_matrix)
#功能:对矩阵做线性变换,可用于白化处理

另:其中,将小于0的像素值置为0,大于255的像素置为255的代码很巧妙,举个例子,这里拎出来说一下,img > 0判断的输出如下,img与此矩阵相乘,大于0的值不变,小于0的地方即置为0,具体如下:

img = [[257,23,55],[-9,98,987],[78,43,21]]
img = np.asarray(img)
img
Out[24]: 
array([[257,  23,  55],[ -9,  98, 987],[ 78,  43,  21]])
img > 0  
Out[25]: 
array([[ True,  True,  True],[False,  True,  True],[ True,  True,  True]]) 
img *= (img>0)
img
Out[27]: 
array([[257,  23,  55],[  0,  98, 987],[ 78,  43,  21]])    
img<=255
Out[28]: 
array([[False,  True,  True],[ True,  True, False],[ True,  True,  True]])
img * (img<=255)
Out[29]: 
array([[ 0, 23, 55],[ 0, 98,  0],[78, 43, 21]])
255 * (img>255)
Out[30]: 
array([[255,   0,   0],[  0,   0, 255],[  0,   0,   0]])
img * (img<=255) + 255 * (img>255)
Out[31]: 
array([[255,  23,  55],[  0,  98, 255],[ 78,  43,  21]])

http://www.ppmy.cn/news/665846.html

相关文章

matlab 矩阵白化,白化(预处理步骤)【转】

介绍 我们已经了解了如何使用PCA降低数据维度。在一些算法中还需要一个与之相关的预处理步骤&#xff0c;这个预处理过程称为白化。举例来说&#xff0c;假设训练数据是图像&#xff0c;由于图像中相邻像素之间具有很强的相关性&#xff0c;所以用于训练时输入是冗余的。白化的…

白化滤波器 matlab,白化滤波器-matlab-程序.doc

随机信号分析实验 PAGE 3 - 白化滤波器 原理 在统计信号处理中,往往会遇到等待处理的随机信号是非白色的,例如云雨、海浪、地物反射的杂乱回波等,它们的功率谱即使在信号通带内也非均匀分布。这样会给问题的解决带来困难。克服这一困难的措施之一是对色噪声进行白化处理。主…

PCA白化

直接上代码&#xff01; % pca和白化 function features_pca_white pca_and_whiting(feature,a)featureszscore(feature);[~,score,~] pca(features);features_pca score(:,1:a);xfeatures_pca;sigma(x*x)/size(x,2);[u,s,~]svd(sigma);xRot zeros(size(x));xRotu*x;epsi…

白化操作

白化whitening 原文地址: http://blog.csdn.net/hjimce/article/details/50864602 一、相关理论 白化这个词,可能在深度学习领域比较常遇到,挺起来就是高大上的名词,然而其实白化是一个比PCA稍微高级一点的算法而已,所以如果熟悉PCA,那么其实会发现这是一个非常简单…

matlab矩阵的白化,白化原理及Matlab实现

白化的原理: 随机向量的“零均值化”和“空间解相关”(也叫白化)是最常用的两个预处理过程,其中“零均值化”比较简单,而“空间解相关”涉及一些矩阵的知识。 设有均值为零的随机信号向量 x ,其自相关矩阵为 Rx=E[xxT] ≠ I 很明显, Rx 是对称矩阵,且是非负定的(所有特征…

matlab白化代码,[支持m_map白化] MATLAB对地图进行白化

function maskMap(shapefile, masktype, varargin) % 对所绘制图形进行白化 % 输入参数: % shapefile : shapefile文件。 字符串型或元胞型 % 为元胞数组时可通过指定多个省份的shp文件进行白化。 % 比如要白化江苏省,江西省,黑龙江省。…

Sufer白化实现

swpu 物探 杨连刚 2018/4/13 二维坐标系下&#xff0c;不规则网格&#xff08;已知坐标x,y及对应位置值val&#xff09;绘制等值线云图&#xff0c;能解决这个问题&#xff0c;特别感谢长安大学 王琦同学热心帮助。 步骤 1根据起伏边界&#xff0c;按照逆时针建立边界白化…

数据白化处理

数据白化处理的作用 减少数据之间的相关性&#xff0c;尤其是做图像处理时&#xff0c;相邻像素点之间关联性较强&#xff0c;白化处理可以让相邻像素点之间的差异更加明显&#xff0c;减少数据冗余。 数据冗余&#xff1a;在数据库中&#xff0c;同一数据存储多次的情况。 …