% script de demo
% Ce script permet de lancer un exemple minimal pour illuster le cours de
% debruitage par m茅thodes variationnelles.
% Il contient des commentaires indiquant les exercices 脿 faire
% Faites les :) et rediger des reponses (courtes), n'h茅sitez pas 脿 inclure
% des illustrations avec les images obtenues
% TESTEZ et POSEZ DES QUESTIONS, l evaluation sera d'autant plus
% bienveillante que des questions auront 茅t茅 pos茅es
%
%J.W. julien.wojak@univ-amu.fr
% choix de la partie du cours 脿 illustrer;
% illustration_partie = 1;
illustration_partie = 2;
% Attention on ferme toutes les fenetres avant de commencer
close all;
% lecture de l image
I = imread('cameraman.tif');
I = double(I);
I = I./max(I(:));
sz = size(I);
figure
imagesc(I)
colormap gray
axis image
title('image "originale" (ce bon vieux cameraman) ')
% Ajout de bruit
mu = 0;
sigma = 0.1;
bruit = normrnd(mu,sigma,sz(1), sz(2));
figure
imagesc(bruit)
colormap gray
axis image
title('bruit a ajouter a l''image ')
Ib = I + bruit;
Ib = Ib./max(Ib(:));
figure
imagesc(Ib,[0,1])
colormap gray
axis image
title('Image bruitee')
if(illustration_partie == 1 )
% Debruitage par Tychonov
[u,J] = debruitTychonov(50,Ib);
%EXERCICE 1:
% qu'observe-t-on sur l'image debruitee, est-ce visuellement satisfaisant ?
% De quel filtre connu se rapproche le r茅sultat obtenu ?
% Illustrer l'effet de ce filtre
figure(1),imshow(u),title('Image d閎ruit閑 Tychonov TVL2');
%EXERCICE 2:
% aller dans debruitTychonov.m, calculer J la valeur de la fonctionnelle
% la tracer en fonction des it茅rations, verifier que la courbe a la forme
% attendue
maxiter=2000;
figure(2),plot(1:maxiter,J),grid;
title('La fonction J de minimisation');
xlabel('time');ylabel('Jmin')
%EXERCICE 3:
% calculer et afficher la difference entre l'image bruitee, Ib et l'image
% debruite u, que constate-t-on ? pourquoi ? (quel lien avec l'exercice 1?)
%%%%------R閔ausser les contours -----%%%%
h = fspecial('sobel');
h_moy=fspecial('average',[3 3]);
u_filtre=imfilter(u,h,'replicate');
I_filtre=imfilter(I,h,'replicate');
Ib_filtre=imfilter(Ib,h_moy,'replicate');
u_diff=Ib-u_filtre;
figure(3),imshow(u_filtre),title('image debruit閑 avec Sobel filtre');
figure(4),imshow(I_filtre),title('image originale avec Sobel filtre');
figure(5), imshow(u_diff), title('image de diff閞ence avec Sobel filtre');
%%%%%%-----------------------%%%%%
figure(6),plot(1:sz(1),u(110,:),'r');
hold on , plot(1:sz(1),Ib(110,:),'b'),grid,
hold on , plot(1:sz(1),Ib_filtre(110,:),'g'),grid,
title('visualisation de Ligne 110 de');
legend('Ligne 110 pour u','Ligne 110 pour Ib','Ligne 110 pour Ib moyenneur');
xlabel('taille image'), ylabel('valeur de Ligne 110');grid on;
end
if(illustration_partie == 2 )
% Debruitage par Tychonov
[u,J] = debruitROF(0.3,Ib);
%EXERCICE 4:
% qu'observe-t-on sur l'image debruitee, est-ce visuellement satisfaisant ?
% De quel filtre connu se rapproche le r茅sultat obtenu ?
% Illustrer l'effet de ce filtre %%
%%%%---J'utilise un filtre nagao , qui fait une op閞ation de ----%%%%%%
%%%%d閎ruitage ou et un filtre m閐ian %%%%%%
Ib_median= medfilt2(Ib);
figure(1),imshow(Ib_median);
figure(2),imshow(u), title('image restaur� debruitage de ROF');
%EXERCICE 5:
% aller dans debruitROF.m, calculer J la valeur de la fonctionnelle
% la tracer en fonction des it茅rations, verifier que la courbe a la forme
% attendue
maxiter=20000;
figure(3),plot(1:maxiter,J),grid;
title('La fonction J de minimisation');
xlabel('time');ylabel('Jmin')
%EXERCICE 6:
% L'effet visuel obtenu est souvent appel茅 "effet marche d'escalier"
% (staircase effect), pourquoi ?
figure(4),plot(1:sz(1),u(110,:),'r');
hold on , plot(1:sz(1),Ib(110,:),'b'),grid,
title('visualisation de Ligne 110 de');
legend('Ligne 110 pour u','Ligne 110 pour Ib');
xlabel('taille image'), ylabel('valeur de Ligne 110');
figure(5),plot(1:sz(1),u(110,:),'r');
hold on , plot(1:sz(1), Ib_median(110,:),'b'),grid,
title('visualisation de Ligne 110 de');
legend('Ligne 110 pour u','Ligne 110 pour Ib_median');
xlabel('taille image'), ylabel('valeur de Ligne 110');grid on;
%EXERCICE 7:
% Changer le type de bruit (mettre plus de bruit, mettre un bruit impulsionnel)
% Tester 脿 nouveau les deux m茅thodes. Quelles observations peut on
% faire?
I_saltpepper=imnoise(I,'salt & pepper',0.1);
[u,J] = debruitROF(0.3,I_saltpepper);
%EXERCICE 8 (facultatif)
% Proposer votre propre implementation de la minimimisation par
% l'algorihtme de chambolle
% Comparer les resultats et les performances avec la minimisation par Euler-Lagrange
% (delta_t < 1/8 assure la convergence)
% newim = TVL1denoise(I,1, 100);
end
没有合适的资源?快使用搜索试试~ 我知道了~
tp02Variational approche for denoising.rar_Chambolle pock_Chambo
共7个文件
m:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 25 浏览量
2022-07-14
19:16:14
上传
评论
收藏 6KB RAR 举报
温馨提示
chambolle pock algorithme
资源推荐
资源详情
资源评论
收起资源包目录
tp02Variational approche for denoising.rar (7个子文件)
tp02
demoDebruitage.m 5KB
debruitTychonov.m 944B
kappa.m 340B
debruitROF.m 928B
ROFdenoise.m 1KB
TVL1denoise.m 3KB
laplacien.m 761B
共 7 条
- 1
资源评论
小波思基
- 粉丝: 74
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功