OpenCV图像滤镜操作-模糊

提示:志当高远且脚踏实地

文章目录

  • 一、前言
  • 二、主要内容
    1. 模糊

    2. 边缘

    3. 浮雕

    4. 轮廓

    5. 锐化

  • 总结


一、前言

opencv滤镜-使用opencv实现各种图像滤镜特效

二、主要内容

1.模糊

图像模糊也叫图像平滑处理,它主要处理图像中与周围差异较大的点,将其像素值调整为与周围点像素值近似的值,其目的是消除图像噪声和边缘。

有如下几种滤波

<1>均值滤波

<2>高斯滤波

<3>方框滤波

<4>中值滤波

<5>双边滤波

<6>2D滤波

<1>均值滤波

均值滤波是以当前点为中心,用其周围的N*N个点的像素点的平均值来替代当前点的像素值

im=cv2.imread('lena.jpg')
cv2.imshow('input',im)
im2=cv2.blur(im,(5,5))
# im2=cv2.blur(im,(20,20))
cv2.imshow('output',im2)
cv2.waitKey(0)

<2>高斯滤波

高斯滤波先按像素点与中心点的距离不同,赋予各像素点不同的权重:越靠近中心点,权重越大;越远离中心点,权重越小。再根据权重计算领域内所有像素点的和,将和作为中心的像素值。

import cv2
im=cv2.imread('lena.jpg')
cv2.imshow('input',im)
im2=cv2.GaussianBlur(im,(5,5),0,0)
cv2.imshow('output',im2)
cv2.waitKey(0)

<3>方框滤波

方框滤波以均值滤波为基础,可选择是否对滤波结果进行归一化。如果为True,则滤波结果为领域内点的像素值之和的平均值,否则为像素值之和。

import cv2
im=cv2.imread('lena.jpg')
cv2.imshow('input',im)
im2=cv2.boxFilter(im, -1, (5,5),
normalize=True)
# im2=cv2.blur(im,(20,20))
cv2.imshow('output',im2)
cv2.waitKey(0)

<4>中值滤波

中值滤波先将邻域内所有像素值排序,取中间值作为邻域中心点的像素值

import cv2
im=cv2.imread('lena.jpg')
cv2.imshow('input',im)
im2=cv2.medianBlur(im, 21)
# im2=cv2.blur(im,(20,20))
cv2.imshow('output',im2)
cv2.waitKey(0)

<5>双边滤波

双边滤波在计算像素值的同时会考虑距离和色差信息,从而可在消除噪声的同时保护边缘信息。

import cv2
im=cv2.imread('lena.jpg')
cv2.imshow('input',im)
im2=cv2.bilateralFilter(im, 50, 100, 100)
# im2=cv2.blur(im,(20,20))
cv2.imshow('output',im2)
cv2.waitKey(0)

<6>2D滤波

2D卷积可使用自定义的卷积核来执行滤波操作。


总结

图像常用模糊滤镜操作

  1. 均值滤波

  2. 高斯滤波

  3. 方框滤波

  4. 中值滤波

  5. 双边滤波

  6. 2D滤波

  • 轮廓

  • 浮雕

  • 锐化

猜你喜欢

转载自blog.csdn.net/CHENG15234944691/article/details/123678520