高斯模糊、均值模糊、中值模糊、双边滤波—opencv实战5

📅 发布时间:2026/7/12 6:06:25 👁️ 浏览次数:
高斯模糊、均值模糊、中值模糊、双边滤波—opencv实战5
importcv2ascvimportnumpyasnp# 导入数值计算库用于卷积核定义imgcv.imread(plane.jpg)# 高斯模糊加权平均滤波中心权重高越远权重越低滤波结果更自然通用预处理(5,5)高斯核必须奇数sigmaX1.2sigma越大越模糊gausscv.GaussianBlur(img,(5,5),1.2)# 均值滤波3x3窗口内像素取平均计算最快、最简单模糊效果生硬、均匀会模糊边缘丢失细节Knp.ones((3,3))/9# 构造3x3均值卷积核所有值1/9np.ones((3,3)) 核心是创建 3 行 3 列、全为 1 的矩阵 除以 9 后得到的是均值滤波核是 OpenCV 图像处理中降噪 / 模糊的经典用法img1cv.filter2D(img,-1,K)# 手动卷积滤波-1表示输出与原图通道深度一致img2cv.blur(img,(3,3))# OpenCV自带均值滤波等效上面手动卷积img3cv.boxFilter(img,-1,(3,3))# 方框滤波默认归一化后均值滤波# 中值模糊用窗口内中位数替代中心像素去椒盐噪声效果最好保边缘能力均值滤波核必须奇数mediancv.medianBlur(img,5)# 5x5窗口取中值无卷积纯排序替换result1cv.blur(img,(5,5))# 5x5均值滤波更大核更模糊 双边滤波高斯模糊颜色相似度约束保边缘去噪,不会把边缘糊掉,计算速度最慢 空间距离近 → 加权颜色相近 → 加权颜色差异大 → 不模糊保护边缘 0表示自动计算核直径50颜色阈值10空间阈值 result2cv.bilateralFilter(img,0,50,10)cv.imshow(image,img)cv.imshow(gauss,gauss)cv.imshow(img1,img1)cv.imshow(img2,img2)cv.imshow(img3,img3)cv.imshow(median,median)cv.imshow(result1,result1)cv.imshow(result2,result2)cv.waitKey(0)cv.destroyAllWindows()