一. sobel滤波器介绍
sobel滤波器常用来提取灰度图像的水平边缘(水平特征)和竖直边缘(竖直特征)
二. sobel算子
纵向算子,提取图像水平边缘 ↑
横向算子,提取图像竖直边缘 ↑
三. 实验:python实现sobel算子并将算子作用于图像
import cv2
import numpy as np
# Gray scale
def BGR2GRAY(img):
b = img[:, :, 0].copy()
g = img[:, :, 1].copy()
r = img[:, :, 2].copy()
# Gray scale
out = 0.2126 * r + 0.7152 * g + 0.0722 * b
out = out.astype(np.uint8)
return out
# sobel filter
def sobel_filter(img, K_size=3):
if len(img.shape) == 3:
H, W, C = img.shape
else:
H, W = img.shape
# Zero padding
pad = K_size // 2
out = np.zeros((H + pad * 2, W + pad * 2), dtype=np.flo