J'essaie de calculer une carte de disparité en utilisant openCV3 en python mais le résultat n'est pas satisfaisant. Je me suis assuré que la calibration et la rectification sont faites correctement :
J'ai essayé la fonction de disparité dans Matlab en utilisant ces images rectifiées et les résultats étaient assez bons. Cependant, la sortie opencv ressemble à un tableau de Van Gogh :
Voici le code python relatif à la disparité :
block_matcher = cv2.StereoBM_create(numDisparities=16, blockSize=15)
disp = block_matcher.compute(rectified_l, rectified_r)
Il est intéressant de noter que la plage de disparité est de [-16,240], alors que je m'attends à ce qu'elle soit de [0,16] puisque j'ai défini numDisparities à 16. Ai-je mal compris le concept de numDisparities ? J'ai essayé de faire varier numDisparities et blockSize mais je n'ai pas obtenu d'amélioration significative.
Faites-moi savoir si vous avez des idées sur ce qui se passe.