水下图像质量评价指标 UIQM(UICM)

UIQM论文 (不知道怎么插入pdf,给个名字在这0.0)
在这里插入图片描述
原理转自:https://blog.csdn.net/weixin_47169667/article/details/108156530
UICM
采用Lab颜色空间(Lab基于人对颜色的感受),其三要素:亮度(L),表示色彩的两个参量a,b。a表示洋红色到绿色,b表示黄色到蓝色。
计算过程:
1、RG即a,YB即b
RG=R-G;
YB=(R+G)/-B
2、图片像素数K=M*N,对于所有的像素按从小到大排序X1<=X2……<=XK。(此处计算仅以RG为例,YB同理)
3、令TαL=[αLK] (向上取整)TαR=[αRK] (向下取整)【取一部分的像素】(TαL表示去除掉部分数据)
4、计算平均值:在这里插入图片描述

5、计算方差:在这里插入图片描述

6、分析:μ越接近0则平衡越好,σ2越大色彩对比度越好
7、(系数由线性回归得到)

简单python代码实现

import cv2
import math
import numpy as np


img = cv2.imread('MSRCR_retinex.tif') #读取图像
b, r, g = cv2.split(img)
RG = r - g
YB = (r + g)/2 - b
m, n, o = np.shape(img)  #img为三维 rbg为二维 o并未用到
K = m*n
alpha_L = 0.1
alpha_R = 0.1 #参数α 可调
T_alpha_L = math.ceil(alpha_L*K)  #向上取整 #表示去除区间
T_alpha_R = math.floor(alpha_R*K) #向下取整

RG_list = RG.flatten() #二维数组转一维(方便计算)
RG_list = sorted(RG_list)  #排序
sum_RG = 0 #计算平均值
for i in range(T_alpha_L+1, K-T_alpha_R ): 
    sum_RG = sum_RG + RG_list[i]
U_RG = sum_RG/(K - T_alpha_R - T_alpha_L)
squ_RG = 0 #计算方差
for i in range(K):
    squ_RG = squ_RG + np.square(RG_list[i] - U_RG)
sigma2_RG = squ_RG/K

#YB和RG计算一样
YB_list = YB.flatten()
YB_list = sorted(YB_list)
sum_YB = 0
for i in range(T_alpha_L+1, K-T_alpha_R ):
    sum_YB = sum_YB + YB_list[i]
U_YB = sum_YB/(K - T_alpha_R - T_alpha_L)
squ_YB = 0
for i in range(K):
    squ_YB = squ_YB + np.square(YB_list[i] - U_YB)
sigma2_YB = squ_YB/K

uicm = -0.0268*np.sqrt(np.square(U_RG) + np.square(U_YB)) + 0.1586*np.sqrt(sigma2_RG + sigma2_YB)
print(uicm)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值