微信:HuangL1121
QQ号:1224848052
团队:MATLAB代做|MATLAB专业代做|FPGA代做|FPGA专业代做
地址:北京市-朝阳区-双柳北街18号院
当前位置:首页 > 图像语音 > 基于NSCT域的图像无参质量检测算法的仿真-MATLAB代做
项目案例
基于NSCT域的图像无参质量检测算法的仿真-MATLAB代做
基于NSCT域的图像无参质量检测算法的仿真-MATLAB代做
产品说明:

由于Contourlet变换过程中需要进行上采样和下采样,故Contourlet变换不具备平移不变性,存在频谱混叠现象,在图像融合中则表现为较明显的Gibbs现象。由于Contourlet变换的这个缺陷,我们在本课题采用的是非子采样轮廓波变换(NSCT).

clc;
clear;
close all;
warning off;


%%
%读取图片
N      = 15;%图片个数 
SEL    = 6;

if SEL == 1
   folder = 'IMAGES\LIVE\fastfading\对比图01\';          %这里有29组图像,可以做不同的验证
   list   = dir('IMAGES\LIVE\fastfading\对比图01\*.bmp');%这里有29组图像,可以做不同的验证
end
if SEL == 2
   folder = 'IMAGES\LIVE\gblur\';
   list   = dir('IMAGES\LIVE\gblur\*.bmp');
end
if SEL == 3
   folder = 'IMAGES\LIVE\jp2k\';
   list   = dir('IMAGES\LIVE\jp2k\*.bmp');
end
if SEL == 4
   folder = 'IMAGES\LIVE\jpeg\';
   list   = dir('IMAGES\LIVE\jpeg\*.bmp');
end
if SEL == 5
   folder = 'IMAGES\LIVE\refimgs\';
   list   = dir('IMAGES\LIVE\refimgs\*.bmp');
end
if SEL == 6
   folder = 'IMAGES\LIVE\wn\';
   list   = dir('IMAGES\LIVE\wn\*.bmp');
end

%注意TID图像库中每68个图片作为对比图
%注意TID图像库中每68个图片作为对比图
if SEL == 7
   folder = 'IMAGES\TID\distorted_images\对比图01\';          %这里有25组图像,可以做不同的验证
   list   = dir('IMAGES\TID\distorted_images\对比图01\*.bmp');%这里有25组图像,可以做不同的验证
end
if SEL == 8
   folder = 'IMAGES\TID\reference_images\';
   list   = dir('IMAGES\TID\reference_images\*.bmp');
end


for i=1:N
    fullfile(folder,list(i).name)
    img   = imread(fullfile(folder,list(i).name));
    img   = double(rgb2gray(img));
    %将图像缩小,使仿真速度快些
    [r,c] = size(img);
    img   = imresize(img,[floor(r/5) floor(r/5)]);   
    I{i}  = uint8(img);
end


%%
%对原图形进行降质
scales = 1;
for i=1:N
    tmp   = I{i};
    [r,c] = size(tmp);
    tmp   = imnoise(uint8(tmp),'salt & pepper', 0.008);
    I2{i} = tmp;
end

 
%%
%采用非采样Contourlet变换来提取特征数据
addpath 'A_nsct_toolbox\'
nlevels = [1,2,3] ;           % Decomposition level
pfilter = 'maxflat' ;         % Pyramidal filter
dfilter = 'dmaxflat7' ;       % Directional filter

for i=1:N
    i
    temp        = nsctdec(I{i},nlevels,dfilter,pfilter);
    feature{i}  = temp;
    
    temp2       = nsctdec(I2{i},nlevels,dfilter,pfilter);
    feature2{i} = temp2;    
end
%显示NSCT域的系数
shownsct(feature{1}) ;



%%
%根据非采样Contourlet变换得到系数得到对应的特征参数
addpath 'B_Feature_process\'

for i=1:N
    %第1层
    for j = 1:length(feature{i}{2})
        R_ssim1       = func_SSIM(feature{i}{2}{j},feature2{i}{2}{j});
        w1(j)         = mean2(feature{i}{2}{j});
        NSCT_SSIM1(j) = R_ssim1;
    end
    %第2层
    for j = 1:length(feature{i}{3})
        R_ssim2       = func_SSIM(feature{i}{3}{j},feature2{i}{3}{j});
        w2(j)         = mean2(feature{i}{3}{j});
        NSCT_SSIM2(j) = R_ssim2;
    end    
    %第3层
    for j = 1:length(feature{i}{4})
        R_ssim3       = func_SSIM(feature{i}{4}{j},feature2{i}{4}{j});
        w3(j)         = mean2(feature{i}{4}{j});
        NSCT_SSIM3(j) = R_ssim3;
    end     
    %所有频带的NSCT_SSIM加权和
    w1s          = sum(w1)/(sum(w1) + sum(w2) + sum(w3))/2;
    w2s          = sum(w2)/(sum(w1) + sum(w2) + sum(w3))/4;
    w3s          = sum(w3)/(sum(w1) + sum(w2) + sum(w3))/8;
    NSCT_SSIM(i) = (w1s*sum(NSCT_SSIM1) + w2s*sum(NSCT_SSIM2) + w3s*sum(NSCT_SSIM3))/(2*w1s+4*w2s+8*w3s); 
end



if SEL == 1
   disp('fastfading质量评价值');
end
if SEL == 2
   disp('gblur质量评价值');
end
if SEL == 3
   disp('jp2k质量评价值');
end
if SEL == 4
   disp('jpeg质量评价值');
end
if SEL == 5
   disp('refimgs质量评价值');
end
if SEL == 6
   disp('wn质量评价值');
end
if SEL == 7
   disp('distorted_images质量评价值'); 
end

NSCT_SSIMavg = mean(NSCT_SSIM);
NSCT_SSIMavg






NSCT最终结果类似于线段的基结构来逼近原图像。NSCT不仅保持了Contourlet变换的多分辨率、局部化和多方向特点也具有平移不变性可以消除GIBBS现象。

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:



上一篇:MATLAB代做|基于Simulink的高速跳频通信系统抗干扰性能分析

版权所有: MATLAB代做|MATLAB专业代做|FPGA代做|FPGA专业代做 Copyright © 2018 All rights reserved.
微信:HuangL1121 QQ:1224848052
地址:北京市-朝阳区-双柳北街18号院

扫一扫,关注我们