Я пытаюсь использовать OpenCV для измерения размера нити (того пластикового материала, который используется для 3D-печати)
Я пытаюсь измерить размер нити (того пластикового материала, который используется для 3D-печати).Идея состоит в том, что я использую светодиодную панель для освещения нити, затем снимаю изображение с камеры, предварительно обрабатываю изображение, применяю детектирование краев и вычисляю его размер.Большинство нитей тонко изготовлены из одного цвета, который легко подвергается предварительной обработке и дает прекрасные результаты.
Проблема связана с прозрачной нитью.Я не могу получить полезные результаты.Я хотел бы попросить небольшой помощи, или если бы кто-то мог подтолкнуть меня в правильном направлении.Я уже пытался обрезать изображение до высоты, которая немного выше, чем у нити накала, и ширину всего в несколько пикселей, а также при расчете размера с использованием количества пикселей в этих изображениях, но это не очень хорошо работало.Так что теперь я здесь и пытаюсь сделать это с обнаружением кромок
- хорошо работает для нитей одного цвета
- , не работает для прозрачных нитей
Кодниже работает нормально для обычных нитей, проблема в том, когда я пытаюсь использовать его для прозрачных нитей.Я попытался настроить пороги для функции Canny.Я пробовал разные цветовые пространства.Но я не могу получить результаты.
Изображения, которые могут помочь понять: https://imgur.com/gallery/CIv7fxY
image = cv.imread("../images/img_fil_2.PNG") # load image
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # convert image to grayscale
edges = cv.Canny(gray, 100, 200) # detect edges of image