Outils pour utilisateurs

Outils du site


wiki:projet:trait_image

Ceci est une ancienne révision du document !


MIRAGES : TRAITEMENT D'IMAGES

CODES MATLAB

SELECTION DU FAISCEAU

function [ image_fais ] = faisceau( im, min )
%FAISCEAU Mat(int*int*int) * Mat(int) -> Mat(int*int*int)
%   Retourne une image ne selectionnant "theoriquement" que le faisceau du
% laser grace a la coueur rouge


n= size(im,1)
p= size(im,2)
im = uint8(im); %convertit l'image pour que l'intensite
%varie de 0 a 255 au lieu de 0 a 1
image_fais= zeros(n,p,3); %initialise l'image en noir complet
image_fais = uint8(image_fais); 

I = 1:n;
J = 1:p;

for i = I
    for j = J
         if im(i,j,1)>min(1)-1 %selection de la couleur rouge
            image_fais(i,j,1)=im(i,j,1); 
         end        
    end
            
end

TRAITEMENT DE L'IMAGE SELECTIONNEE

Im = imread('exp_glo.jpg');



mint = [135 29 69]

imf = faisceau(Im, mint);


image(Im)

figure
image(imf)

figure
[imf2, zx] = affinage(imf);
image(imf2)

figure
plot(0:size(zx,2)-1, zx)

AFFINAGE

function [ imf, xm ] = affinage( im )
%AFFINAGE Mat(int*int*int) -> Mat(int*int*int) * Mat(int)
% Retourne l'image en moyennant les positions verticales des pixels rouges 
%pour avoir un trait fin et le tableau contenant ces valeurs

n= size(im,1);
p= size(im,2);
im = uint8(im);

xm=zeros(1,p);

I = 1:n;
J = 1:p;

for j = J
    s=0;
    x=0;
    for i = I
        if im(i,j, 1) > 0
            
            x = x+i;
            s=s+1;
        end
        xm(j)=floor(x/s);%un pixel doit être un entier
    end
end
imf = zeros(n,p,3);

%
x=xm(p-1);
xm(p)=x;  
test = xm(p);

for j=2:p
    if abs(xm(p+1-j)-test)>8
        xm(p+1-j)=NaN;
    else
        test = xm(p+1-j);
    end
end
% entre les deux signes : Elimination des valeurs tres aberantes

imf = uint8(imf);
for j = J
    if xm(j)>0
        imf(xm(j), j,1)=255;
    end
end
wiki/projet/trait_image.1489673751.txt.gz · Dernière modification: 2017/03/16 14:15 de http_fablab.sorbonne-universites.fr_wiki_doku.php_id_wiki_projet_laser