Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import numpy as np
- import matplotlib.pyplot as plt
- # Загружаем изображение
- image_path = "image.png"
- image = cv2.imread('/Users/texnik/Downloads/project/image.png', cv2.IMREAD_GRAYSCALE) # загружаем в градациях серого
- if image is None:
- print("Ошибка: изображение не удалось загрузить.")
- else:
- # Изменяем размер изображения на три разных разрешения
- sizes = [(200, 200), (400, 400), (800, 800)]
- resized_images = [cv2.resize(image, size) for size in sizes]
- # Функция для применения оператора Собеля
- def apply_sobel(image):
- sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3) # по оси x
- sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3) # по оси y
- sobel_combined = cv2.magnitude(sobel_x, sobel_y) # комбинируем результаты
- return sobel_combined
- # Функция для применения оператора Кэнни с заданными порогами
- def apply_canny(image, threshold1=70, threshold2=200):
- return cv2.Canny(image, threshold1, threshold2)
- # Применяем оператор Собеля и Кэнни к каждому изображению
- sobel_results = [apply_sobel(img) for img in resized_images]
- canny_results = [apply_canny(img) for img in resized_images]
- # Визуализация результатов
- fig, axes = plt.subplots(3, 3, figsize=(15, 10))
- for i, (resized, sobel, canny) in enumerate(zip(resized_images, sobel_results, canny_results)):
- axes[i, 0].imshow(resized, cmap='gray')
- axes[i, 0].set_title(f"Resized {sizes[i][0]}x{sizes[i][1]}")
- axes[i, 0].axis('off')
- axes[i, 1].imshow(sobel, cmap='gray')
- axes[i, 1].set_title(f"Sobel {sizes[i][0]}x{sizes[i][1]}")
- axes[i, 1].axis('off')
- axes[i, 2].imshow(canny, cmap='gray')
- axes[i, 2].set_title(f"Canny {sizes[i][0]}x{sizes[i][1]}")
- axes[i, 2].axis('off')
- plt.tight_layout()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement