Bonjour,

Je souhaiterais détourer une partie d'une image et n'afficher que cette image. J'ai pu utiliser la fonction "imcrop" mais le problème, c'est que je fais du tracking en même temps et donc je n'ai pas forcément un rectangle mais plus un polygone. J'ai donc utiliser la fonction "roipoly" qui me donne des résultats intéressants mais je souhaiterais optimiser mon code. En effet, avec la fonction "roipoly", on observe en sortie une image binaire. Il faut donc effectuer un post-traitement afin d'obtenir uniquement la partie de l'image qu'on souhaite visualiser.

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    % Crop image
    x = [bboxPoints(:,1)];
    y = [bboxPoints(:,2)];
    x1 = reshape(x', 1, []);
    y1 = reshape(y', 1, []);
    im_crop_prev = roipoly(videoFrameGray,x1,y1);
    [R C] = size(im_crop_prev);
    for i=1:R
        for j = 1:C
            if im_crop_prev(i,j) == 1
                im_crop (i,j) = videoFrameGray (i,j);
            else
                im_crop(i,j) = 0;
            end
        end
    end
Pensez vous qu'il y ait un moyen plus simple d'effectuer cette manipulation?
Si non, pensez vous qu'il est possible d'optimiser la dernière partie de ce code (boucle for)?

D'avance merci.

JP_developpeur.