liuqin1998 2018-07-08 12:28 采纳率: 50%
浏览 4109
已结题

matlab使用别人的代码的时候出现找不到函数的问题

我在试着复现这个问题
https://github.com/cszn/IRCNN
目前进行到了最后一步了,可是有很大的问题

图片说明

 clear; clc;

addpath('utilities');
imageSets    = {'Set18','Set24'}; % testing dataset
setTest      = imageSets(1); % select the dataset

useGPU       = 0;

folderTest   = 'testsets';
folderResult = 'results';
folderModel  = 'models';
if ~exist(folderResult,'file')
    mkdir(folderResult);
end
setTestCur = cell2mat(setTest(1));
disp('--------------------------------------------');
disp(['----',setTestCur,'--Color Image Demosaiking--']);
disp('--------------------------------------------');
folderTestCur = fullfile(folderTest,setTestCur);

% folder to store results
folderResultCur = fullfile(folderResult, ['Demosaik_',setTestCur]);
if ~exist(folderResultCur,'file')
    mkdir(folderResultCur);
end


%% Noise level 
noiselevel = 0; % default; noiselevel = 10; Isigma     = 10/255; Msigma     = 8;


%% parameter setting in HQS (tune the following parameters to obtain the best results)
%% -------------------important!------------------
% Parameter settings of IRCNN
% (1) image noise level: Isigma
Isigma     = 0.5/255; % default 0.5/255 for noise-free image, ****** from interval [1/255, 20/255] ******; e.g., 1/255, 2.55/255, 7/255, 11/255
% (2) noise level of the last denoiser: Msigma
Msigma     = 2; % default 2 for noise-free image, ****** from {1 2 3 4 5 7 9 11 13 15} ******
%--------------------------------------------------------

%% load denoisers
load(fullfile(folderModel,'modelcolor.mat'));

%% default parameter setting in HQS
totalIter   = 30; % default 30
lamda       = (Isigma^2)/3; % default 3, ****** from {1 2 3 4} ******
modelSigma1 = 49; % default 49
modelSigmaS = logspace(log10(modelSigma1),log10(Msigma),totalIter);
rho         = Isigma^2/((modelSigma1/255)^2);

ns          = min(25,max(ceil(modelSigmaS/2),1));
ns          = [ns(1)-1,ns];

ext                 =  {'*.jpg','*.png','*.bmp','*.tif'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths,dir(fullfile(folderTestCur, ext{i})));
end

PSNRs = zeros(1,length(filepaths));
SSIMs = zeros(1,length(filepaths));

for i = 1 : length(filepaths)

    label  = imread(fullfile(folderTestCur,filepaths(i).name));
    [~, Iname, ext] = fileparts(filepaths(i).name);
    label = im2single(label);

    % generate mask
    [B, y, mask] = mosaic_bayer(label, 'grbg', noiselevel);
    y    = single(y);
    mask = single(mask);
    z = linearlcc(B, 0);
    z =  single(z);

    z0          = z;
    if useGPU
        z       = gpuArray(z);
        y       = gpuArray(y);
    end

    for itern = 1:totalIter

        % step 1
        rho = lamda*255^2/(modelSigmaS(itern)^2);
        z   = (y+rho*z)./(mask+rho);

        if ns(itern+1)~=ns(itern)
            [net] = loadmodel(modelSigmaS(itern),CNNdenoiser);
            net = vl_simplenn_tidy(net);
            if useGPU
                net = vl_simplenn_move(net, 'gpu');
            end
        end

        % step 2
        res = vl_simplenn(net, z,[],[],'conserveMemory',true,'mode','test');
        residual = res(end).x;
        z = z - residual;

        %         imshow(z)
        %         title(int2str(itern))
        %         drawnow;
    end

    if useGPU
        output = im2uint8(gather(z));
        y      = im2uint8(gather(y));
    end

    %output(mask==1) = y(mask==1);

    [PSNR_Cur,SSIM_Cur] = Cal_PSNRSSIM(im2uint8(label),output,10,10);

    PSNRs(i) = PSNR_Cur;
    SSIMs(i) = SSIM_Cur;

    imshow(cat(2,y,output));
    drawnow;
    pause(0.001);

    disp([filepaths(i).name,'  --  ', num2str(PSNR_Cur,'%2.2f'),'dB  --  ', num2str(SSIM_Cur,'%2.2f')]);
    %     imwrite(y,fullfile(folderResultCur,[Iname,'_mosaik.png']));
    %     imwrite(output,fullfile(folderResultCur,[Iname,'_ircnn.png']));

end

disp('Average PSNR and SSIM')
disp([mean(PSNRs),mean(SSIMs)]);
  • 写回答

8条回答 默认 最新

  • 奇遇遇偶遇 2018-07-09 09:54
    关注
            net = vl_simplenn_tidy(net);
                        应该是这行代码出错了;
                        显示没有找到这个函数;
                        Demo_demosaiking函数中调用 vl_simplenn_tidy子函数时,将包含vl_simplenn_tidy函数的.m文件拷贝至Demo_demosaiking相同目录即可。
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?