2021-09-26学习内容

颜色空间

RGB

红绿蓝三个通道。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开

YUV

在 YUV空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和V。将亮度和色度分开,就可以再不影响颜色的情况下改变亮度强度。

Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128


R = Y + 1.402 (V-128)
G= Y - 0.34414 (U-128) - 0.71414 (V-128)
B= Y + 1.772 (U-128)

YCbCr

Y依然是亮度,Cb 和 Cr 指的是色彩, 其应用领域很广,JPEG MPEG都采用这个格式

Y=0.299R+0.587G+0.114B
Cb=0.564(B-Y)
Cr=0.713(R-Y)

 

R=Y+1.402Cr
G=Y-0.344Cb-0.714Cr
B=Y+1.772Cb
  1. YUV 4:4:4采样,每一个Y对应一组UV分量。
  2. YUV 4:2:2采样,每两个Y共用一组UV分量。
  3. YUV 4:2:0采样,每四个Y共用一组UV分量

cv2.imread(img_path, flag)

img_L = cv2.imread(img, cv2.IMREAD_UNCHANGED)  # BGR or G
# flags:标志位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}
# cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代
# cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代
# cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用 - 1
# 作为实参替代
# PS:alpha通道,又称A通道,是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度复信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明

[…, 0]

即对最后一维数据的提取,0是下标

b=torch.Tensor([[[[10,2],[4,5],[7,8]],[[1,2],[4,5],[7,8]]]])

print(b.size())
(1, 2, 3, 2)

print(b[,0])
tensor([[[10., 4., 7.],
[ 1., 4., 7.]]])

print(b[,0].size())
(1, 2, 3)

print(b[,2])
Traceback (most recent call last):
File “”, line 1, in
IndexError: index 2 is out of bounds for dimension 3 with size 2
    
print(b[0,])
tensor([[[10., 2.],
[ 4., 5.],
[ 7., 8.]],
[[ 1., 2.],
[ 4., 5.],
[ 7., 8.]]])

print(b[0,].size())
(2, 3, 2)

cv2.imencode()

是将图片格式转换(编码)成流数据,赋值到内存缓存中;主要用于图像数据格式的压缩,方便网络传输。

img_L = cv2.imread('0122.jpg')
result, encimg = cv2.imencode('.jpg', img_L, [int(cv2.IMWRITE_JPEG_QUALITY), quality_factor])
# '.jpg'表示把当前图片img按照jpg格式编码,按照不同格式编码的结果不一样

# result bool true
# 应该就是流数据了
flags
IMWRITE_JPEG_QUALITY Python: cv.IMWRITE_JPEG_QUALITYFor JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95.

cv2.imdecode()

img_L = cv2.imdecode(encimg, 0)

# flag 可能是下面的意思:
# cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代
# cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代
# cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用 - 1

np.newaxis

新增加一个维度

PSNR(Peak Signal-to-Noise Ratio) 峰值信噪比

方差定义为:
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 ∥ I ( i , j ) − K ( i , j ) ∥ 2 M S E=\frac{1}{m n} \sum_{i=0}^{m-1} \sum_{j=0}^{n-1}\|I(i, j)-K(i, j)\|^{2} MSE=mn1i=0m1j=0n1I(i,j)K(i,j)2
峰值信噪比定义为:
P S N R = 10 ⋅ log ⁡ 10 ( M A X I 2 M S E ) = 20 ⋅ log ⁡ 10 ( M A X I M S E ) P S N R=10 \cdot \log _{10}\left(\frac{M A X_{I}^{2}}{M S E}\right)=20 \cdot \log _{10}\left(\frac{M A X_{I}}{\sqrt{M S E}}\right) PSNR=10log10(MSEMAXI2)=20log10(MSE MAXI)
一般地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1。

上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算。

  • 分别计算 RGB 三个通道的 PSNR,然后取平均值。
  • 计算 RGB 三通道的 MSE ,然后再除以 3 。
  • 将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR。

SSIM (Structural SIMilarity) 结构相似性

SSIM公式基于样本x和y之间的三个比较衡量:亮度 (luminance)、对比度 (contrast) 和结构 (structure)。
l ( x , y ) = 2 μ x μ y + c 1 μ x 2 + μ y 2 + c 1 c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 s ( x , y ) = σ x y + c 3 σ x σ y + c 3 l(x, y)=\frac{2 \mu_{x} \mu_{y}+c_{1}}{\mu_{x}^{2}+\mu_{y}^{2}+c_{1}} c(x, y)=\frac{2 \sigma_{x} \sigma_{y}+c_{2}}{\sigma_{x}^{2}+\sigma_{y}^{2}+c_{2}} s(x, y)=\frac{\sigma_{x y}+c_{3}}{\sigma_{x} \sigma_{y}+c_{3}} l(x,y)=μx2+μy2+c12μxμy+c1c(x,y)=σx2+σy2+c22σxσy+c2s(x,y)=σxσy+c3σxy+c3
一般取 c 3 = c 2 / 2 c_{3}=c_{2} / 2 c3=c2/2

  • μ x \mu_{x} μx x x x 的均值
  • μ y \mu_{y} μy y y y 的均值
  • σ x 2 \sigma_{x}^{2} σx2 x x x 的方差
  • σ y 2 \sigma_{y}^{2} σy2 y y y 的方差
  • σ x y \sigma_{x y} σxy x x x y y y 的协方差
  • c 1 = ( k 1 L ) 2 , c 2 = ( k 2 L ) 2 c_{1}=\left(k_{1} L\right)^{2}, c_{2}=\left(k_{2} L\right)^{2} c1=(k1L)2,c2=(k2L)2 为两个常数, 避免除零
  • L L L 为像素值的范围, 2 B − 1 2^{B}-1 2B1
  • k 1 = 0.01 , k 2 = 0.03 k_{1}=0.01, k_{2}=0.03 k1=0.01,k2=0.03 为默认值

S S I M ( x , y ) = [ l ( x , y ) α ⋅ c ( x , y ) β ⋅ s ( x , y ) γ ] S S I M(x, y)=\left[l(x, y)^{\alpha} \cdot c(x, y)^{\beta} \cdot s(x, y)^{\gamma}\right] SSIM(x,y)=[l(x,y)αc(x,y)βs(x,y)γ]
α , β , γ \alpha, \beta, \gamma α,β,γ 设为 1, 可以得到
S S I M ( x , y ) = ( 2 μ x μ y + c 1 ) ( 2 σ x y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) S S I M(x, y)=\frac{\left(2 \mu_{x} \mu_{y}+c_{1}\right)\left(2 \sigma_{x y}+c_{2}\right)}{\left(\mu_{x}^{2}+\mu_{y}^{2}+c_{1}\right)\left(\sigma_{x}^{2}+\sigma_{y}^{2}+c_{2}\right)} SSIM(x,y)=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σxy+c2)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值