Advertisement
Botlarakla

5 project Azadov Nadirbek

Oct 19th, 2024
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | Source Code | 0 0
  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4.  
  5. # Загружаем изображение
  6. image_path = "image.png"
  7. image = cv2.imread('/Users/texnik/Downloads/project/image.png', cv2.IMREAD_GRAYSCALE)  # загружаем в градациях серого
  8. if image is None:
  9.     print("Ошибка: изображение не удалось загрузить.")
  10. else:
  11.     # Изменяем размер изображения на три разных разрешения
  12.     sizes = [(200, 200), (400, 400), (800, 800)]
  13.     resized_images = [cv2.resize(image, size) for size in sizes]
  14.  
  15.     # Функция для применения оператора Собеля
  16.     def apply_sobel(image):
  17.         sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3)  # по оси x
  18.         sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3)  # по оси y
  19.         sobel_combined = cv2.magnitude(sobel_x, sobel_y)       # комбинируем результаты
  20.         return sobel_combined
  21.  
  22.     # Функция для применения оператора Кэнни с заданными порогами
  23.     def apply_canny(image, threshold1=70, threshold2=200):
  24.         return cv2.Canny(image, threshold1, threshold2)
  25.  
  26.     # Применяем оператор Собеля и Кэнни к каждому изображению
  27.     sobel_results = [apply_sobel(img) for img in resized_images]
  28.     canny_results = [apply_canny(img) for img in resized_images]
  29.  
  30.     # Визуализация результатов
  31.     fig, axes = plt.subplots(3, 3, figsize=(15, 10))
  32.     for i, (resized, sobel, canny) in enumerate(zip(resized_images, sobel_results, canny_results)):
  33.         axes[i, 0].imshow(resized, cmap='gray')
  34.         axes[i, 0].set_title(f"Resized {sizes[i][0]}x{sizes[i][1]}")
  35.         axes[i, 0].axis('off')
  36.  
  37.         axes[i, 1].imshow(sobel, cmap='gray')
  38.         axes[i, 1].set_title(f"Sobel {sizes[i][0]}x{sizes[i][1]}")
  39.         axes[i, 1].axis('off')
  40.  
  41.         axes[i, 2].imshow(canny, cmap='gray')
  42.         axes[i, 2].set_title(f"Canny {sizes[i][0]}x{sizes[i][1]}")
  43.         axes[i, 2].axis('off')
  44.  
  45.     plt.tight_layout()
  46.     plt.show()
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement