comment je peux calculer la different entre 2 image avec un certain seuil
pour localiser l'objet a suivi
et comment je peux le faire si j'ai un sequence d'image de 10 image
merci bien
comment je peux calculer la different entre 2 image avec un certain seuil
pour localiser l'objet a suivi
et comment je peux le faire si j'ai un sequence d'image de 10 image
merci bien
Bonjour,
premierement, il serait surement bien de convertir tes images en NB (rgb2gray par ex. si tu as l'image processing toolbox...).
Ensuite fais la difference des deux images:
d = im1 - im2
Ensuite tu peux appliquer un seuillage
ex:
noirblanc = (abs(d) > seuil)
note: si tu as l-img. toolbox, tu peux utiliser la function graythresh pour derterminer un seuil automatiquement... et imabsdiff pour faire la difference absolue des images...
met tout ca dans une boucleet comment je peux le faire si j'ai un sequence d'image de 10 image
Salutations,
Gregoire
Voir lasi tu ne possèdes pas l'IP Toolbox : Comment convertir une image RGB en niveaux de gris ?
Merci pour votre reponse
quant au sequence d'image
la boucle ce fait de 1er image jusqu'a la derniere c'est a dire
Img1-Img2
Img2-Img3
Img3-Img4
..
..
Imgn-1 -Imgn
parceque l'objectif de faire la differente est seulemnt de localiser l'objet a suivre.
Merci bien
Essaye d'être un peu plus précis dans tes questions
Peut être un début de réponse, encore dans la:
Comment nommer une suite de fichiers : nom_1.ext, nom_2.ext... nom_N.ext ?
j'ai essayé de faire ce code mais ca marche pas
voici le resultat qu'il me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 close all;clear all;clc; NomImage = imread('Image000.tif'); seuil=10;difference1 =[];dif1=[]; for Img=1:10 NomImage=strcat(sprintf('Image0%d,tif',Img)) ; dif= NomImage(Img) - NomImage(Img+1); dif1=[dif1,dif]; difference = (abs(dif) > seuil); difference1 =[difference1 ;difference ]; end dif1 difference1
je veux faire la difference entre chaque coupe d'image
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
17
18
19 dif1 = -36 12 -6 2 53 -6 11 -72 11 11 difference1 = 1 1 0 0 1 0 1 1 1 1
quand j'ai fait la difference il me donne une valeur normalement doit me donner une matrice qui contient des 0 ou 1 !!!!
je veux une explication sur cette resultat ou bien je suis trompé quelque part
j'ai donner au seuil la valeur 10 mais je ne sais pas es ce que ce seuil est depend d'un autre contrainte ou pas?
Merci pour votre reponse
Il faut utiliser la fonction IMREAD à chaque fois que tu souhaites lire une image différente.
Quelque chose comme ceci :
Si ça ne fonctionne pas, vérifie les noms des fichiers générés dans la boucle FOR-END
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
17
18 close all;clear all;clc; seuil=10;difference1 =[];dif1=[]; for n=0:10 NomImage1=sprintf('Image%03d.tif',n); Img1=imread(NomImage1,'tif'); NomImage2=sprintf('Image%03d.tif',n+1); Img2=imread(NomImage2,'tif'); dif= Img1 - Img2; dif1=[dif1,dif]; difference = (abs(dif) > seuil); difference1 =[difference1 ;difference ]; end
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager