Как нарисовать прямую линию в контурных объектах в Opencv python и рассчитать в мм (миллиметрах). Я использую также cv2.line, но это не дает мне точную прямую.
Я просто использую краску для этой зеленой линии
hsv = cv2.cvtColor(6.jpg, cv2.COLOR_BGR2HSV)
lower_blue = np.array([5, 25, 25])
upper_blue = np.array([70, 255, 255])
thresh = cv2.inRange(hsv, lower_blue, upper_blue)
imask = thresh > 0
green = np.zeros_like(frame, np.uint8)
green[imask] = frame[imask]
cnts = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
cnts = sorted(cnts, key=cv2.contourArea, reverse=True)
for c in cnts:
x, y, w, h = cv2.boundingRect(c)
# Draw rectangle
cv2.rectangle(green, (x, y), (x + w, y + h), (36, 255, 12), 2)
cv2.putText(green, "w={},h={}".format(w, h), (x, y - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (36, 255, 12), 2)
# Draw contours
cv2.drawContours(green, [c], -1, (0, 255, 255), 3)
break