TP-vision/TP_mosaique.m
2023-06-25 16:42:57 +02:00

89 lines
3.3 KiB
Matlab

clear all;
close all;
% Lecture des images
Im1 = imread('sweet1.pgm');
Im2 = imread('sweet2.pgm');
Im1_coul = imread('sweet_couleur1.jpg');
Im2_coul = imread('sweet_couleur2.jpg');
Im3_coul = imread('sweet_couleur3.jpg');
% Im1_coul = imread('rescaled_local_1.jpg');
% Im2_coul = imread('rescaled_local_2.jpg');
% Im3_coul = imread('rescaled_local_3.jpg');
% Im4_coul = imread('rescaled_local_4.jpg');
% Im5_coul = imread('rescaled_local_5.jpg');
% Im6_coul = imread('rescaled_local_6.jpg');
% Im7_coul = imread('rescaled_local_7.jpg');
% Im8_coul = imread('rescaled_local_8.jpg');
% Im1_coul = imread('im1.jpg');
% Im2_coul = imread('im2.jpg');
% Im3_coul = imread('im3.jpg');
% Im4_coul = imread('im4.jpg');
% Affichage des deux premières images en niveaux de gris
% figure;
% affichage_image(Im1,'Image 1',1,2,1);
% affichage_image(Im2,'Image 2',1,2,2);
% Choix des parametres
TailleFenetre = 17;
NbPoints = 100;
k = 0.05;
seuil = 0.80;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Detection des points d'interet avec Harris %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [XY_1,Res_1] = harris(Im1,TailleFenetre,NbPoints,k);
% [XY_2,Res_2] = harris(Im2,TailleFenetre,NbPoints,k);
% figure;
% affichage_POI(Im1,XY_1,'POI Image 1',1,2,1);
% affichage_POI(Im2,XY_2,'POI Image 2',1,2,2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Appariement des points d'interet %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [XY_C1,XY_C2] = apparier_POI(Im1,XY_1,Im2,XY_2,TailleFenetre,seuil);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Estimation (et verification) de l'homographie %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% H = homographie(XY_C1,XY_C2);
%%%%%%%%%%%%%%%%%%%%%%%%%
% Calcul de la mosaique %
%%%%%%%%%%%%%%%%%%%%%%%%%
% Imos = mosaique(Im1,Im2,H);
% figure;
% affichage_image(uint8(Imos),'Mosaique obtenue a partir des 2 images initiales',1,1,1);
% imwrite(uint8(Imos),'mosaique2.pgm');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Version 2 pour la reconstruction %
% A DECOMMENTER QUAND MOSAIQUEBIS AURA ETE ECRITE %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Imosbis = mosaiquebis(Im1,Im2,H);
% figure;
% affichage_image(uint8(Imosbis),'Mosaique obtenue a partir des 2 images initiales (version 2)',1,1,1);
% imwrite(uint8(Imosbis),'mosaique2_bis.pgm');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Version 3 pour la reconstruction avec les couleurs R, G et B %
% A DECOMMENTER QUAND MOSAIQUECOUL AURA ETE ECRITE %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Imoscoul = mosaiquecoul(Im1_coul,Im2_coul,H);
% figure;
% affichage_image(uint8(Imoscoul),'Mosaique obtenue a partir des 2 images couleur initiales (version 2)',1,1,1);
% imwrite(uint8(Imoscoul),'mosaique2_coul.pgm');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Version 4 pour la reconstruction avec 3 images %
% en couleurs et/ou en niveaux de gris %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Imoscoul = mosaiqueN(TailleFenetre, NbPoints, k, seuil, Im1_coul, Im2_coul, Im3_coul);
Imoscoul = mosaiqueNbis(TailleFenetre, NbPoints, k, seuil, 2, Im1_coul, Im2_coul, Im3_coul);
figure;
affichage_image(Imoscoul,'Mosaique obtenue a partir des 3 images couleur initiales (version 2)',1,1,1);
% imwrite(uint8(Imoscoul),'mosaique2_coul.pgm');