J'ai essayé d'avoir une fenêtre simple avec un trackbar fixant le seuil pour la binarisation.
J'ai vu plusieurs exemples en utilisant la méthode getTrackbarPos
de la trackbar dans une boucle while, mais pas beaucoup en utilisant une fonction de rappel, que je voudrais utiliser (ou au moins comprendre pourquoi getTrackbarPos
est mieux)
Je vois en fait le seuil image lorsque je déplace le curseur, mais il est presque instantanément remplacé par l'image originale. J'ai également essayé d'utiliser un global ImageBin
dans la fonction de rappel, mais cela n'aide pas. Quelqu'un a une suggestion ou peut me rediriger vers un problème similaire? MerciRappel de la barre de suivi python openCV
import cv2
# callback function
def Update(value):
print value
ret,ImageBin = cv2.threshold(Image,value,255,cv2.THRESH_BINARY)
cv2.imshow('Fenetre',ImageBin)
# window
cv2.namedWindow('Fenetre',cv2.WINDOW_GUI_NORMAL)
# Trackbar
Slider = cv2.createTrackbar('Threshold','Fenetre',0,255,Update)
# Open image
Home = r'C:\Users\Laurent Thomas\Documents\DataSet\170922110941_BISCHOFF_DORSAL_2ndGO'
Image = cv2.imread(Home + '\WE00001---A001--PO01--LO001--CO6--SL001--PX32500--PW0040--IN0020--TM245--X014262--Y011163--Z216816--T1373979007.tif',0)
# Initialise first view as the normal image
ImageBin = Image[:]
while(1):
cv2.imshow('Fenetre',ImageBin)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
D'accord, cela a fonctionné grâce. c'est bizarre que je l'ai fait hier et ça ne marchait pas. Peut-être que certains ont abandonné et relancé le besoin ou une variable qui était encore en mémoire ... Qui sait – Jindil