图像属性
名词解释
专有名词
含义
作用
边缘edge
图像中亮度或颜色剧烈变化的地方,代表物体或场景中不同区域之间的边界或边界轮廓
结构structure
图像中物体的相对位置、形状、大小、排列方式等。图像中的纹理、线条、曲线、边缘等特征,并提供了更全面的场景或物体的信息
纹理texture
图像中重复的、规律的、表现出一定模式或结构的区域,代表了物体或场景中的细节和表面特征
细节detail
图像中的小尺度、高频的信息,包括纹理、边缘和其他微小的特征
振铃效应ringing effect
图像处理过程中出现的边缘附近的人工伪影或震动现象
噪声
噪声影响边缘检测的准确性,因此使用深层的语义特征表示
亮度
亮度是一个不可测量的主观描述子,体现的是发光强度的消色概念,是描述彩色感觉的一个重要因素。
人眼对亮度的变化是呈非线性反应,对较暗区域的变化更加敏感[对0亮度到0.01亮度敏感,对0.99亮度到1亮度不敏感]。对数形式与人类感受亮度的过程相近
illumination map 应在纹理细节上平滑,同时仍能保持整体结构边界
伽马校正(gamma correction)提高亮度,以非线性的方式在每个像素上单独进行, 但不考虑某个像素与其相邻像素的关系
对比度
直方图均衡化(histogram equalization)提高图像的对比度
色调
色调是指图像中的整体色调, 调整色调可以影响整体的色彩感觉
色调是混合光波中与主波长相关的属性,表示被观察者感知的主导色。
色调重建(gamma校正)
人眼对输入光的响应也是线性,而人的感觉却是非线性的,人对暗光会更加敏感
传感器对输入图像的响应大部分是线性的,而显示设备相对输入图像通常也是非线性的,对输入的敏感性和人眼的特性恰好相反
白平衡
作用:使得人眼感知为白色的物体在最终的成像中也为白色
饱和度
饱和度指的是相对的纯度,或与一种色调混合的白光量。纯光谱颜色是完全饱和的,饱和度与所加的白光量成反比 。如深红色(红色
加白色)是不饱和的,
色彩空间
颜色是一种主观的感觉,与入射光的功率谱分布(SPD)相关,也跟人眼对不同光源的光谱敏感度相关,另外对不同环境光线下拍摄的物体的颜色具有自纠正的作用
色彩是指图像中的具体颜色信息
区别不同颜色的特性通常是亮度、色调和饱和度,色调与饱和度称为色度,因此一种颜色可由其亮度和色度来表征
RGB
适合于显示系统,不适合于图像处理
优点:
基本色光是人类眼睛所能感知到的颜色
颜色值范围是0-255,便于计算和储存
颜色组成方式简单易懂,易于理解和使用
缺点:
空间的颜色由R、G、B的混合比值定义,难以用准确的值表示,因此不容易进行定量分析
颜色之间的相关性很高,所得到的图像饱和度低,颜色变化小,视觉效果差
不能够描述颜色的亮度或饱和度
RGB颜色空间是线性的,可能导致颜色的亮度感知不准确
HSV
Value (V) channel reflflects the illumination and reflflectance information
颜色失真
在RGB颜色空间中,两个颜色点之间的欧几里德距离并不代表真正的视觉差异。
边缘
任一点的边缘与梯度向量正交
一阶微分算子:Roberts算子、Prewitt算子和Sobel算子
二阶微分算子:DOG算子、LoG算子、Laplacian算子
Canny
细节
伪影
渲染
渲染中用到的光照是在线性空间
图像先验
局部平滑性
自然图像相邻像素点之间的像素值在一定程度上是连续变化的,梯度直方图上观察,自然图像梯度统计趋近于0
梯度L2范数约束是基于梯度统计服从高斯分布得到,可抑制噪声,但也平滑纹理
TV 范数是基于梯度统计服从拉普拉斯统计得到,对噪声鲁棒性更好,对纹理细节的保留也优于L2范数
L0范数约束比TV约束更强调局部一致性
非局部相似性
在自然图像的不同位置存在相似的纹理,且许多的纹理存在规律性。说明自然图像信息是冗余的,可利用图像的冗余信息对图像缺失或被污染的部分进行修复
非局部均值(non local mean) 去噪
稀疏性
统计特性
局部最大梯度先验
local maximum gradient prior: 尖锐变化的边缘处通常有局部最大梯度, 这种先验假设可以被用于图像增强、去噪、超分辨率等任务中,帮助提高算法的效果和稳定性
空间相干性
Spatial coherence(空间相干性)描述图像的平滑性和连续性,即在局部区域内,图像像素之间的相对位置和亮度值变化比较连续和一致。
一般指图像中相邻像素之间的关系,如果相邻像素之间的值变化较小,说明图像具有较高的空间相干性,即比较光滑;如果相邻像素之间的值变化较大,说明图像具有较低的空间相干性,即粗糙和杂乱。
促进增强或恢复的图像具有更好的空间连续性和一致性,以提高其质量和可视化效果
"""
chatGPT
使用Sobel算子计算图像的梯度,并将梯度加权以获得图像的空间相干性。在训练过程中,将空间相干性用作损失函数的一部分,以鼓励生成图像具有更好的空间连续性和一致性
"""
import torch
import torch.nn.functional as F
# 计算图像梯度
def image_gradients(img):
sobel_x = torch.Tensor([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]).view((1, 1, 3, 3))
sobel_y = torch.Tensor([[-1, -2, -1], [0, 0, 0], [1, 2, 1]]).view((1, 1, 3, 3))
# 转换为灰度图像
if img.shape[1] == 3:
img_gray = 0.299 * img[:, 0, :, :] + 0.587 * img[:, 1, :, :] + 0.114 * img[:, 2, :, :]
else:
img_gray = img
img_grad_x = F.conv2d(img_gray, sobel_x)
img_grad_y = F.conv2d(img_gray, sobel_y)
img_grad_mag = torch.sqrt(torch.pow(img_grad_x, 2) + torch.pow(img_grad_y, 2))
return img_grad_x, img_grad_y, img_grad_mag
# 计算加权的图像梯度
def weighted_image_gradients(img):
img_grad_x, img_grad_y, img_grad_mag = image_gradients(img)
weight_x = torch.exp(-img_grad_mag)
weight_y = torch.exp(-img_grad_mag)
weighted_grad_x = img_grad_x * weight_x
weighted_grad_y = img_grad_y * weight_y
return weighted_grad_x, weighted_grad_y
# 计算空间相干性损失函数
def spatial_coherence_loss(img, enhanced_img, lambda_sc):
img_grad_x, img_grad_y = weighted_image_gradients(img)
enhanced_grad_x, enhanced_grad_y = weighted_image_gradients(enhanced_img)
# 计算梯度之间的欧几里得距离
grad_diff_x = img_grad_x - enhanced_grad_x
grad_diff_y = img_grad_y - enhanced_grad_y
grad_diff = torch.sqrt(torch.pow(grad_diff_x, 2) + torch.pow(grad_diff_y, 2))
# 计算加权平均距离
sc_loss = torch.mean(grad_diff * torch.exp(-lambda_sc * grad_diff))
return sc_loss