Bonjours,

j'ai actuellement un soucis, je souhaite mesuré la largeur d'un câble à l'aide open CV pour cela je me suis inspiré de plusieurs tuto que l'on retrouve sur le net sauf que mon programme détecte le fond de l image et non mon câble ce qui n'est pas mon objectif. je vous laisse en jugée par vous même voici mon code:

import cv2
import numpy as np

img = cv2.imread('cable_image.jpg')
img = cv2.resize(img, (img.shape[1] // 3, img.shape[0] // 3))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.threshold(gray, 80, 90, cv2.THRESH_BINARY)[1]


contours, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

cable_contour = max(contours, key=cv2.contourArea)

x, y, width, height = cv2.boundingRect(cable_contour)

print("Largeur du câble:", width)

cv2.drawContours(gray, [cable_contour], -1, (0, 255, 0), 2)
cv2.imshow("Contour du câble", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

voici l image que j obtient
Nom : Capture d’écran 2023-02-04 152924.png
Affichages : 99
Taille : 71,8 Ko

et l image initial
Nom : cable_image.jpg
Affichages : 100
Taille : 427,8 Ko

et on voit que le contour est en noir et qu il me prend le fond...
j'ai vraiment besoin que l'on m'explique ce qui vas pas la dedans mon seuillage a l'aire correcte je pense que ca vient de la fonction findcontour que je ne comprend pas.
merci d'avance pour votre aide je suis vraiment mal faut il que j'utilise plutôt autre chose ou y as t il une fonction pour inverser la couleur de mon câble et du fond pour faire en sorte que le câble sorte claire par rapport au fond ... je vois vraiment pas ou est le problème merci.