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:
Pensez vous qu'il y ait un moyen plus simple d'effectuer cette manipulation?
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
Si non, pensez vous qu'il est possible d'optimiser la dernière partie de ce code (boucle for)?
D'avance merci.
JP_developpeur.
Partager