Секція 1. Розділ 10
single
Виявлення Країв
Свайпніть щоб показати меню
Контури представляють собою різкі зміни яскравості пікселів, які зазвичай відповідають межам об'єктів. Виявлення контурів допомагає у розпізнаванні форм та сегментації.
Виявлення контурів методом Собеля
Оператор Собеля обчислює градієнти (зміни інтенсивності) у X та Y напрямках, що допомагає знаходити горизонтальні та вертикальні контури.
# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5) # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5) # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y) # Combines both directions
Примітка
Ключові параметри:
src: вхідне зображення (має бути у відтінках сірого);ddepth: глибина вихідного зображення (наприклад,cv2.CV_64F);dx: порядок похідної по X (встановити1для горизонтальних контурів);dy: порядок похідної по Y (встановити1для вертикальних контурів);ksize: розмір ядра (має бути непарним, наприклад,3,5,7).
Виявлення контурів методом Кенні
Детектор контурів Кенні — це багатоступенева алгоритмічна процедура, яка забезпечує більш точне виявлення контурів шляхом:
- Застосування гаусового розмиття для видалення шуму.
- Знаходження градієнтів інтенсивності за допомогою фільтрів Собеля.
- Придушення слабких контурів.
- Використання подвійного порогового значення та відстеження контурів.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
Примітка
image: вхідне зображення у відтінках сірого;threshold1: нижній поріг для виявлення країв (наприклад,50);threshold2: верхній поріг для виявлення країв (наприклад,150);apertureSize(необов'язково): розмір ядра Собеля (за замовчуванням:3, має бути непарним);L2gradient(необов'язково): використання більш точної обчислення градієнта за нормою L2 (за замовчуванням:False).
Порівняння методів виявлення країв:
Завдання
Swipe to start coding
Вам надано image:
- Перетворіть зображення у відтінки сірого та збережіть у
gray_image; - Застосуйте фільтр Собеля по напрямках X та Y (глибина вихідного зображення
cv2.CV_64F, розмір ядра3) та збережіть уsobel_x,sobel_yвідповідно; - Об'єднайте напрямки, відфільтровані Собелем, у
sobel_img; - Застосуйте фільтр Кенні з порогами від
200до300та збережіть уcanny_img.
Рішення
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 1. Розділ 10
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат