Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Лабораторная работа №3, Упражнения и задачи из Компьютерное зрение

Лабораторная работа по компьютерному зрению №3 на тему Image Filtering and Hough Transform

Вид: Упражнения и задачи

2021/2022

Продается с 21.06.2024

danil-igoshin
danil-igoshin 🇺🇦

8 документы

Частичный предварительный просмотр текста

Скачай Лабораторная работа №3 и еще Упражнения и задачи в формате PDF Компьютерное зрение только на Docsity! МІНИСТЕРСТВО НАУКИ І ОСВІТИ УКРАЇНИ ХАРКІВСКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ Кафедра системотехніки Лабораторна робота № 3 Дисципліна: «КОМП’ЮТЕРНИЙ ЗІР» Тема: «Image Filtering and Hough Transform» Виконали: Cт. Гр. ІТПм-22-2 Ігошин Д.В. Перевірила: Путятіна О.Є. Скрит І.П. Харків 2022 2 Мета роботи: вивчення перетворення Хафа для ідентифікації прямих та кіл. Хід роботи: Для виконання лабораторної роботи буде використано Google COLAB з таким переліком бібліотек: numpy, cv2, mathlotlib.pyplot, skimage, random. Код з переліком підключених бібліотек представлено на рисунку 1. Рисунок 1 – код з переліком підключених бібліотек Виконаємо створення ліній на рисунку та зробимо його монохромним з виділенням країв та границь (рис 2). Код пресдтавлено у лістингу 1. Лістинг 1 – Код створення ліній та виділення ліній та границь img = cv2.imread('image_lines.PNG') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) cv2_imshow(edges) lines = cv2.HoughLines(edges, 1, np.pi / 180, 200) for line in lines: rho,theta = line[0] a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho # x1 stores the rounded off value of (r * cos(theta) - 1000 * sin(theta)) x1 = int(x0 + 1000 * (-b)) # y1 stores the rounded off value of (r * sin(theta)+ 1000 * cos(theta)) y1 = int(y0 + 1000 * (a)) 5 В результаті при такому рівні зашумлення не вийшло знайти лінії. Виконаємо всі ті самі дії для реального зображення. Як зображення було обрано нахилену шахову дошку. Код блоку з усіма діями представлено у лістингу 4. Результати виконання на рисунках 5 та 6. На рисунку 7 показано знаходження ліній на границь на зображенні з зашумлення. Лістинг 4 – код з усіма діями img = cv2.imread('1.jpg') cv2_imshow(img) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) cv2_imshow(edges) lines = cv2.HoughLines(edges, 1, np.pi / 180, 200) for line in lines: rho,theta = line[0] a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho # x1 stores the rounded off value of (r * cos(theta) - 1000 * sin(theta)) x1 = int(x0 + 1000 * (-b)) # y1 stores the rounded off value of (r * sin(theta)+ 1000 * cos(theta)) y1 = int(y0 + 1000 * (a)) # x2 stores the rounded off value of (r * cos(theta)+ 1000 * sin(theta)) x2 = int(x0 - 1000 * (-b)) # y2 stores the rounded off value of (r * sin(theta)- 1000 * cos(theta)) y2 = int(y0 - 1000 * (a)) cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2) cv2_imshow(img) img = cv2.imread('1.jpg') out1 = sp_noise(img, prob=0.01) cv2_imshow(out1) gray = cv2.cvtColor(out1, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) cv2_imshow(edges) #lines = cv2.HoughLines(edges, 1, np.pi / 180, 200) lines = cv2.HoughLines(edges, 1, np.pi / 180, 200) for line in lines: rho,theta = line[0] a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho # x1 stores the rounded off value of (r * cos(theta) - 1000 * sin(theta)) 6 x1 = int(x0 + 1000 * (-b)) # y1 stores the rounded off value of (r * sin(theta)+ 1000 * cos(theta)) y1 = int(y0 + 1000 * (a)) # x2 stores the rounded off value of (r * cos(theta)+ 1000 * sin(theta)) x2 = int(x0 - 1000 * (-b)) # y2 stores the rounded off value of (r * sin(theta)- 1000 * cos(theta)) y2 = int(y0 - 1000 * (a)) cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2) cv2_imshow(img) Рисунок 5 – зображення та зображення у контурі Рисунок 6 – зображення зі знайденими лініями та зображення з зашумленнями 7 Рисунок 7 – зображення де знайдені лінії при зашумленні Виконаємо ті самі дії для знаходження окружності предметів. Код виконання монохрому та пошуку окружностей та границь представлено у лістингу 5. Результати виконання представлено на рисунках 8 та 9. Рисунок 8 – вибране зображення та монохром з контуром
Docsity logo