Зависит от необходимой вам точности.
Самый простой способ - использовать функцию minc для opencv на каждом подуровне обнаружения (просто перенести каждый контур обнаружения [i] на слой)
RotatedRect minAreaRect(InputArray points)
Ширина и высота выходного прямоугольника - это то, что вы ищете
Другой инструмент называется выпуклым. Чтобы определить это, вы должны найти основное направление (собственное) и найти длину. Если вам нужно найти изогнутую длину, то вам нужно проследить только невыпуклую область. это будет немного сложно
void convexHull(InputArray points, OutputArray hull, bool clockwise=false, bool returnPoints=true )