-
Binarisation
bonsoir,
je veux implémenter la fonction de binarisation, j'ai fait 2 boucles imbriquée, l'une parcourt la longueur, et l'autre la largeur, et je sauvegarde à chaque fois dan ces 2 boucles la valeur de l'image dans la variable val qui a un type cvscalar à l'aide de l'appel au fonction cvGet2D, ensuite j'ai fait un test de la variable val avec la valeur de seuil, à l'intérieur de test je modifie la valeur d'une nouvelle image par soit 0 ou 1 à l'aide de la fonction cvSet2D
le problème est que le type de seuil qui est une valeur entière est différent que val qui est de type cvscalar, donc je ne peux pas faire la comparaison
comment je peux régler le problème svp
Merci.
-
Salut,
Je ne sais pas si tu cherches toujours mais voila ce que je ferais:
Déjà je n’appellerais pas mon cvScalar val car cvScalar est une structure contenant un tableau de double appelé val.
Deux solutions:
Soit si tu utilises cvGet2D(...)
cvScalar s;
s=cvGet2D(...) ;
s.val[0] pour accéder a la valeur du pixel (si ton image est à niveaux de gris).
Soit tu utilises cvGetReal2D(...) qui te renvoie directement un double et tu peux faire ta comparaison :)
-
sinon il y a la fonction threshold qui fait tout en une ligne.
elle est présentée dans la doc