# -*- coding: utf-8 -*-
import numpy as np
import cv2
import os
import csv
#高斯滤波
def smooth(image, sigma=1.4, length=5):
# Compute gaussian filter
k = length // 2
gaussian = np.zeros([length, length])
for i in range(length):
for j in range(length):
gaussian[i, j] = np.exp(-((i - k) ** 2 + (j - k) ** 2) / (2 * sigma ** 2))
gaussian /= 2 * np.pi * sigma ** 2
gaussian = gaussian / np.sum(gaussian)
W, H = image.shape
new_image = np.zeros([W - k * 2, H - k * 2])
for i in range(W - 2 * k):
for j in range(H - 2 * k):
new_image[i, j] = np.sum(image[i:i + length, j:j + length] * gaussian)
new_image = np.uint8(new_image)
return new_image
# 双边滤波
def bilateral_filter(image, d=3, sigmaColor=20, sigmaSpace=40):
# 应用双边滤波
filtered_image = cv2.bilateralFilter(image, d, sigmaColor, sigmaSpace)
return filtered
canny 算法 python实现, 双边滤波--自适应阈值改进--形态学操作
最新推荐文章于 2025-01-18 17:40:47 发布