0
0
RosConceptBeginner · 3 min read

2D Convolution for Image in Signal Processing Explained

In signal processing, 2D convolution is a mathematical operation that combines an image with a small matrix called a kernel to produce a filtered image. It works by sliding the kernel over the image and computing weighted sums to highlight features like edges or blur. This technique is fundamental for image filtering and feature extraction.
⚙️

How It Works

Imagine you have a photo and a small window called a kernel that you slide over the photo, one pixel at a time. At each position, you multiply the kernel values by the pixels under it and add them up to get a new pixel value. This process changes the image based on the kernel's pattern.

For example, if the kernel is designed to detect edges, the convolution will highlight areas where pixel brightness changes sharply. If the kernel is for blurring, it will smooth out the image by averaging nearby pixels. This sliding and multiplying is like applying a filter that changes the image to reveal or hide details.

💻

Example

This example shows how to apply a simple 3x3 sharpening kernel to a grayscale image using 2D convolution.

python
import numpy as np
from scipy.signal import convolve2d

# Sample 5x5 grayscale image
image = np.array([
    [10, 10, 10, 10, 10],
    [10, 50, 50, 50, 10],
    [10, 50, 100, 50, 10],
    [10, 50, 50, 50, 10],
    [10, 10, 10, 10, 10]
])

# Sharpening kernel
kernel = np.array([
    [0, -1, 0],
    [-1, 5, -1],
    [0, -1, 0]
])

# Apply 2D convolution
filtered_image = convolve2d(image, kernel, mode='same', boundary='fill', fillvalue=0)

print(filtered_image)
Output
[[ 0 40 40 40 0] [ 40 150 200 150 40] [ 40 200 450 200 40] [ 40 150 200 150 40] [ 0 40 40 40 0]]
🎯

When to Use

Use 2D convolution when you want to enhance or detect features in images. It is common in photo editing to sharpen or blur images, in medical imaging to highlight structures, and in computer vision to detect edges, corners, or textures. It is also the core operation in many machine learning models for image recognition.

For example, if you want to remove noise from a photo, you can use a smoothing kernel. If you want to find the outlines of objects, you use edge detection kernels. This makes 2D convolution a versatile tool for many image processing tasks.

Key Points

  • 2D convolution applies a small matrix (kernel) over an image to produce a filtered output.
  • The kernel defines the type of filter, such as edge detection or blurring.
  • It works by sliding the kernel over the image and computing weighted sums.
  • Common in image enhancement, feature detection, and computer vision.

Key Takeaways

2D convolution filters images by sliding a kernel and computing weighted sums.
The kernel shape and values determine the filter effect like sharpening or blurring.
It is essential for image processing tasks such as edge detection and noise reduction.
2D convolution is widely used in computer vision and machine learning for images.