Commit 6842bc48 authored by Ulmer Louis's avatar Ulmer Louis
Browse files

ajout tp TIM

parent 2e3d9dbb
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -31,8 +31,6 @@ axis tight
set(gca, 'fontsize', 18)
% A Completer ...
% a decomenter si vous utilisez un pas fixe a chaque iteration
% pas = 0.1;
......@@ -47,9 +45,9 @@ text(theta0(1,1), theta0(2,1)-0.175, '\theta_0', 'fontsize', 16)
theta= [-1; 0];
k=1;
kmax=500;
kmax=50;
criteres=[];
while ((norm(mongradientRosen(theta))>10^-3) && (k<kmax)) %non convergence
while ((norm(mongradientRosen(theta))>10^-3) || (k<kmax)) %non convergence
X = sprintf('iter num %d',k);
disp(X)
% calcul de J
......@@ -61,6 +59,7 @@ while ((norm(mongradientRosen(theta))>10^-3) && (k<kmax)) %non converg
% mise a jour de theta = theta + alpha * direction
theta = theta + pas*direction;
k=k+1;
% trace du theta courant
figure(1), hold on
%subplot(2,1,1)
......@@ -73,6 +72,11 @@ while ((norm(mongradientRosen(theta))>10^-3) && (k<kmax)) %non converg
plot(criteres)
drawnow
end
%%
clear all
close all
clc
%% Methode de Newton
n = 100;
[X, Y] = meshgrid(linspace(-1.25, 2.5, n), linspace(-1.75, 2, n));
......@@ -96,7 +100,6 @@ set(gca, 'fontsize', 18)
% a decomenter si vous utilisez un pas fixe a chaque iteration
% pas = 0.1;
% solution initiale
theta0 = [-1; 0];
......@@ -106,34 +109,47 @@ h = plot(theta0(1,:), theta0(2,:), 'ro');
set(h, 'MarkerSize', 8, 'markerfacecolor', 'r');
text(theta0(1,1), theta0(2,1)-0.175, '\theta_0', 'fontsize', 16)
theta= [-1; 0];
k=1;
kmax=500;
kmax=15;
criteres=[];
while ((norm(mongradientRosen(theta))>10^-3) && (k<kmax)) %non convergence
theta= [-1; 0];
while ((norm(mongradientRosen(theta))>10^-3) && (k<kmax)) %non convergence
%compteur d'iter k
X = sprintf('iter num %d',k);
disp(X)
%calcul du gradient
grad=mongradientRosen(theta)
H=monhessienRosen(theta)
% calcul de J
crit=moncritereRosen(theta);
grad=
%on s'assure que H est def pos (det(H)=0)
[L,test]=chol(H,'lower');
if test
tau=norm(H,'fro');
H=H+tau/2*eye(2);
end
% calcul de la direction de descente
direction =-H\grad;
direction=-H\grad;
% Determination du pas de recherche
pas = 1e-3;
pas = 0.01;
% mise a jour de theta = theta + alpha * direction
theta = theta + pas*direction;
k=k+1;
% trace du theta courant
figure(1), hold on
%subplot(2,1,1)
h = plot(theta(1,:), theta(2,:), 'ro');
set(h, 'MarkerSize', 3, 'markerfacecolor', 'r');
drawnow
%drawnow
criteres=[criteres crit]
%subplot(2,1,2),
figure(2),hold on
plot(criteres)
drawnow
%drawnow
end
% figure(2), hold on
% plot(crit)
......
......@@ -3,9 +3,8 @@ function [ H ] = monhessienRosen( theta )
% Detailed explanation goes here
%tester la decomposition choleski sur H pour s'assurer quelle est def pos
%cf diapo 26 pour la methode a pas variable
direction =-H\grad;
p=100;
H=[12*p*theta(1)^2-4*p*theta(2) -4*p*theta(1);
-4*p*theta(1) 2p];
-4*p*theta(1) 2*p];
end
File added
No preview for this file type
%% TP3 Filtrage
img=imread('lena_gray.tif');
img_bruite=bruit_saltpepper(img,0.1);
figure(5)
imagesc(img_bruite)
colormap('gray')
%% Filtrage Moyenneur
img2=moyenneur(img)
figure(2)
imagesc(img2)
colormap('gray')
%% Filtrage Median
img3=median_filtre(img)
figure(3)
imagesc(img3)
colormap('gray')
img4=medfilt2(img)
figure(4)
imagesc(img4)
colormap('gray')
%% Filtrage avec fspecial
n=3;
H = fspecial('average',n); % 1/9=0.1111
img_bruite2=filter2(H, img_bruite);
figure
hold on
imshow(img_bruite2)
title('Image Lena Gray filtree (filter2 Matlab average)')
hold off
%%
%% TP 4 ? Extraction de contours
%% 1- cas monodimensionel
t=0:0.1:10
v=saut_amplitude(t)
figure(1)
plot(v)
%% 2- Operateurs derivatifs du premier ordre
img=imread('cameraman.tif');
img=double(img);
[x,y]=gradient(img);
contours=sqrt(x.^2+y.^2)
figure(2)
imagesc(contours)
colormap('gray')
title('detection de contour par la methode du gradient')
% La deriv?e de l'image met en valeur les contours saillants de l'image
%% 2- Les op?rateurs d?rivatifs du premier ordre
%img_prewitt = edge(img,'prewitt');
%img_sobel = edge(img,'sobel');
Hs = fspecial('sobel');
Hp = fspecial('prewitt');
img_prewitt=filter2(Hp,img);
img_sobel=filter2(Hs,img);
figure(3)
subplot(1,2,1)
imagesc(img_prewitt)
title('prewitt')
colormap('gray')
subplot(1,2,2)
imagesc(img_sobel)
title('sobel')
colormap('gray')
%% 3- Les operateurs derivatifs du second ordre
z=del2(img); %fonction laplacien optimis?e par matlab
figure(4)
subplot(1,2,1)
imagesc(z)
colormap('gray')
title('methode du laplacien optimisee')
subplot(1,2,2)
w=divergence(x,y);
imagesc(w)
colormap('gray')
title('methode du laplacien=div(grad(x,y))')
%%
gaussian1 = fspecial('Gaussian', 21, 15);
gaussian2 = fspecial('Gaussian', 21, 20);
dog = gaussian1 - gaussian2;
dogFilterImage = conv2(double(img), dog, 'same');
figure(4)
subplot(1,2,1)
imagesc(dogFilterImage)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment