#python #opencv #image-processing #convex-hull
#python #opencv #обработка изображений #выпуклая оболочка
Вопрос:
Я пытаюсь вычислить шероховатость линий на изображении и считаю, что cv2.ConvexHull и cv2.convexivityDefects — это правильный путь. Проблема, с которой я сталкиваюсь, заключается в том, что линии не могут быть собраны в контуры, потому что они выходят за границы изображения. Ниже приведено исходное изображение и края, которые я смог сформировать из него. Есть ли способ просто закрыть фигуры или создать контуры, даже если они открыты? Или есть лучший способ найти шероховатость?
Чтобы уточнить, это функции, которые я пытаюсь использовать в настоящее время. Я новичок в обработке изображений, поэтому понятия не имею, какие модули могут здесь помочь.
cnts = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
hull = cv2.convexHull(cnt,returnPoints=True)
hullDefects = cv2.convexHull(cnt,returnPoints=False)
spiralDefects = cv2.convexityDefects(cnt, hullDefects)
Комментарии:
1. Изменить черную или фоновую цветную рамку на изображении?
2. Есть ли функция, которая просто добавляет границу к изображению?
3. Вы можете добавить его вручную в Paint, просто чтобы попробовать. В противном случае используйте функции рисования opencv.
4. Это на самом деле сработало отлично, после некоторого поиска я нашел функцию ImageOps.expand(img,border= 20,fill=’black’), которая могла легко добавить границу. Спасибо!