function feat = brisque_feature(imdist) %图像无参考评价模型BRISQUE %------------------------------------------------ % Feature Computation %------------------------------------------------- if(size(imdist,3)==3) imdist = uint8(imdist); imdist = rgb2gray(imdist); imdist = double(imdist); end scalenum = 1; %迭代次数 window = fspecial('gaussian',7,7/6); %创建一个7*7的高斯滤波器,标准差为7/6 window = window/sum(sum(window)); %归一化 feat = []; for itr_scale = 1:scalenum %用高斯滤波器在图像上滤波,返回滤波数据的中心,大小与 X 相同 mu = filter2(window, imdist, 'same'); mu_sq = mu.*mu;% 两个矩阵按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素 sigma = sqrt(abs(filter2(window, imdist.*imdist, 'same') - mu_sq)); structdis = (imdist-mu)./(sigma+1); alpha = estimateggdparam(structdis(:)); %feat = [feat alpha]; shifts = [ 0 1;1 0 ; 1 1; -1 1]; % for itr_shift =1:1 shifted_structdis = circshift(structdis,shifts(itr_shift,:));%循环平移 pair = structdis(:).*shifted_structdis(:);%相邻像素相乘 [alpha leftstd rightstd] = estimateaggdparam(pair); const =(sqrt(gamma(1/alpha))/sqrt(gamma(3/alpha))); meanparam =(rightstd-leftstd)*(gamma(2/alpha)/gamma(1/alpha))*const; % meanparam =1/(meanparam+1); feat =[alpha meanparam]; end %缩放图像 imdist = imresize(imdist,0.5); end
时间: 2023-06-15 20:05:21 浏览: 71
BRISQUE_release.zip_BRISQUE算法_MATLAB2014 brisque_图像评价算法_图像质量评价_无
5星 · 资源好评率100%
这段代码实现了图像质量评价模型 BRISQUE 的特征计算过程。具体地,它使用高斯滤波器对输入的灰度图像进行滤波,并基于滤波结果计算出结构失真度量。接下来,它对结构失真度量进行参数估计,得到 AGGD 分布的形状参数 alpha 和标准差参数 meanparam。最后,它将 alpha 和 meanparam 作为特征输出。代码中的循环平移操作是为了捕捉图像中的局部空间相关性。由于该评价模型是无参考的,因此它可以在没有参考图像的情况下对图像质量进行评价。
阅读全文