Back to posts Edit this post
Copy content

11 Dec 17:24

ZadanieC
import imageio import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import grey_erosion, generate_binary_structure # Wczytanie obrazów testowych z szumem noised2 = imageio.imread('noised2.png') noised3 = imageio.imread('noised3.png') noised4 = imageio.imread('noised4.png') # Zdefiniowanie elementów strukturujących def create_square_mask(size): return np.ones((size, size), dtype=bool) # Kwadratowa maska 5x5 def create_circle_mask(size): center = size // 2 Y, X = np.ogrid[:size, :size] distance = (X - center)**2 + (Y - center)**2 return distance <= center**2 # Kołowa maska 5x5 # Funkcja do filtracji z użyciem operacji erosion def apply_erosion(image, mask): return grey_erosion(image, footprint=mask) # Funkcja do wyświetlania obrazów przed i po filtracji # Stworzenie masek square_mask = create_square_mask(5) # Kwadratowa maska 5x5 circle_mask = create_circle_mask(5) # Kołowa maska 5x5 # Filtracja obrazów testowych for image, name in [(noised2, 'Noised2'), (noised3, 'Noised3'), (noised4, 'Noised4')]: # Filtracja dla maski kwadratowej filtered_square = apply_erosion(image, square_mask) displayImages(image, filtered_square, f"{name} - Original", f"{name} - Erosion (Square Mask)") # Filtracja dla maski kołowej filtered_circle = apply_erosion(image, circle_mask) displayImages(image, filtered_circle, f"{name} - Original", f"{name} - Erosion (Circle Mask)")

No files