0% found this document useful (0 votes)
16 views40 pages

Spatial Filtering

The document discusses various spatial filtering techniques for image processing including average filtering, median filtering, max filtering, min filtering, Gaussian blurring, and bilateral filtering. Code examples are provided to demonstrate implementing these filters using OpenCV.

Uploaded by

sarbjot singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views40 pages

Spatial Filtering

The document discusses various spatial filtering techniques for image processing including average filtering, median filtering, max filtering, min filtering, Gaussian blurring, and bilateral filtering. Code examples are provided to demonstrate implementing these filters using OpenCV.

Uploaded by

sarbjot singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Spatial Filtering

Numerical Correlation
• Image: [100, 120, 100, 150, 160]
• Mask: [1,0,-1]

• Padded Image: [0, 100, 120, 100, 150, 160, 0]

• Resultant Image: [-120, 0, -30, -60, 150]


Numerical Convolution
• Image: [100, 120, 100, 150, 160]
• Mask: [1,0,-1]

• Padded Image: [0, 100, 120, 100, 150, 160, 0]


• Flipped Mask: [-1, 0, 1]
• Resultant Image: [120, 0, 30, 60, -150]
• np.convolve()
• np.correlate()
Program of Average Filter

import cv2

# Load an image
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# Apply the average filter


kernel_size = 5
filtered_image = cv2.blur(image, (kernel_size, kernel_size))

# Display the original and filtered images using matplotlib


plt.figure(figsize=(10, 6))

cv2.imshow(filtered_image)
Program Median Blur

import cv2

# Load an image
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# Apply median blur


kernel_size = 5
blurred_image = cv2.medianBlur(image, kernel_size)

cv2.imshow(blurred_image, cmap='gray')
import cv2

# Load an image
image = cv2.imread('image.jpg',
cv2.IMREAD_GRAYSCALE)

# Apply max filter


kernel_size = 5
kernel = np.ones((kernel_size, kernel_size),
np.uint8)
max_filtered_image = cv2.dilate(image, kernel)

cv2.imshow(max_filtered_image, cmap='gray')
Program Min Filter
import cv2

# Load an image
image = cv2.imread('image.jpg',
cv2.IMREAD_GRAYSCALE)

# Apply min filter


kernel_size = 5
kernel = np.ones((kernel_size,
kernel_size), np.uint8)
min_filtered_image = cv2.erode(image,
kernel)

plt.imshow(min_filtered_image,
cmap='gray')
Average Blur
• Principle: Average blur replaces each pixel's value with
the average of its neighboring pixel values. It uses a
simple convolution operation with a kernel of equal
weights.
• Effect: Average blur is effective at reducing high-
frequency noise but can lead to blurring of edges and
textures.
• Edge Preservation: It does not preserve edges well,
especially if the kernel size is large.
• Use Cases: Basic noise reduction, where edge
preservation is not a critical concern.
Median Blur
• Principle: Median blur replaces each pixel's value
with the median value of its neighboring pixel
values. It is a non-linear filter.
• Effect: Median blur effectively reduces salt-and-
pepper noise while preserving edges and fine
details.
• Edge Preservation: It preserves edges well, making
it suitable for images with impulsive noise.
• Use Cases: Removing salt-and-pepper noise without
significantly affecting image structure.
Gaussian Blur
• Principle: Gaussian blur applies convolution with a
Gaussian kernel. The Gaussian kernel is a weighted
matrix with a bell-shaped distribution.
• Effect: Gaussian blur effectively reduces noise while
maintaining relatively smooth edges. It's suitable for
general-purpose noise reduction.
• Edge Preservation: It blurs edges to some extent,
but less compared to average blur.
• Use Cases: Noise reduction in images without strong
edges.
Bilateral Blur
• Principle: Bilateral blur combines spatial and color
information. It considers both the spatial distance and
color similarity between pixels when applying the blur.
• Effect: Bilateral blur effectively reduces noise while
preserving edges and fine textures.
• Edge Preservation: It preserves edges very well,
making it suitable for noise reduction without
sacrificing image structure.
• Use Cases: Noise reduction while preserving fine
details, textures, and edges.
Gaussian Blur
import cv2

# Load an image
image = cv2.imread('image.jpg')

# Apply Gaussian blur


kernel_size = (5, 5) # Specify kernel size (width, height)
sigma_x = 0 # Standard deviation in X direction (if 0, it's computed from kernel
size)
gaussian_blurred_image = cv2.GaussianBlur(image, kernel_size, sigmaX=sigma_x)

# Display the original and Gaussian-blurred images using matplotlib


plt.figure(figsize=(10, 6))

cv2.imshow(gaussian_blurred_image)
Bilateral Filter
import cv2

# Load an image
image = cv2.imread('image.jpg')

# Apply bilateral filter


diameter = 9 # Diameter of pixel neighborhood
sigma_color = 75 # Color standard deviation
sigma_space = 75 # Space standard deviation
bilateral_filtered_image = cv2.bilateralFilter(image, diameter, sigma_color, sigma_space)

# Display the original and bilateral-filtered images using matplotlib


plt.figure(figsize=(10, 6))

cv2.imshow(bilateral_filtered_image)
• laplacian = cv2.Laplacian(image)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy