提示:志当高远且脚踏实地
文章目录
- 一、前言
- 二、主要内容
-
模糊
-
边缘
-
浮雕
-
轮廓
-
锐化
-
- 总结
一、前言
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卷积可使用自定义的卷积核来执行滤波操作。
总结
图像常用模糊滤镜操作
-
均值滤波
-
高斯滤波
-
方框滤波
-
中值滤波
-
双边滤波
-
2D滤波
-
轮廓
-
浮雕
-
锐化