Секція 2. Розділ 7
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.
Рішення
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 2. Розділ 7
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат