openCV—Python(9)—— 图像平滑与滤波

一、函数简介

1、blur—图像均值平滑滤波

函数原型:blur(src, ksize, dst=None, anchor=None, borderType=None)

src:图像矩阵

ksize:滤波窗口尺寸

2、GaussianBlur—图像高斯平滑滤波

函数原型:GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)

src:图像矩阵

ksize:滤波窗口尺寸

sigmaX:标准差

3、medianBlur—图像中值滤波

函数原型:medianBlur(src, ksize, dst=None)

src:图像矩阵

ksize:滤波窗口尺寸

4、bilateralFilter—图像双边滤波

函数原型:bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)

src:图像矩阵

d:邻域直径

sigmaColor:颜色标准差

sigmaSpace:空间标准差

二、实例演练

1、图像均值平滑滤波

代码如下:

#encoding:utf-8

import numpy as np
import cv2

image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)

#领域均值滤波
blurred = np.hstack([cv2.blur(image,(3,3)),
                     cv2.blur(image,(5,5)),
                     cv2.blur(image,(7,7))
                     ])
cv2.imshow("Averaged",blurred)
cv2.waitKey(0)

结果如下:

原图像:

平画后的图像(从左到右窗口宽度依次为:3、5、7)

2、图像高斯平滑滤波

代码如下:

#encoding:utf-8

import numpy as np
import cv2

image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)

#高斯滤波
blurred = np.hstack([cv2.GaussianBlur(image,(3,3),0),
                     cv2.GaussianBlur(image,(5,5),0),
                     cv2.GaussianBlur(image,(7,7),0)
                     ])
cv2.imshow("Gaussian",blurred)
cv2.waitKey(0)

结果如下:

原图像:

平画后的图像(从左到右窗口宽度依次为:3、5、7,标准差均为:0)

3、图像中值滤波

代码如下:

#encoding:utf-8

import numpy as np
import cv2

image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)

#中值滤波
blurred = np.hstack([cv2.medianBlur(image,3),
                     cv2.medianBlur(image,5),
                     cv2.medianBlur(image,7)
                     ])
cv2.imshow("Median",blurred)
cv2.waitKey(0)

结果如下:

原图像:

平画后的图像(从左到右窗口宽度依次为:3、5、7)

4、图像双边滤波

代码如下:

#encoding:utf-8

import numpy as np
import cv2

image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)

#双边滤波
blurred = np.hstack([cv2.bilateralFilter(image,5,21,21),
                     cv2.bilateralFilter(image,7, 31, 31),
                     cv2.bilateralFilter(image,9, 41, 41)
                     ])
cv2.imshow("Bilateral",blurred)
cv2.waitKey(0)

结果如下:

原图像:

平画后的图像(相关参数意义,请参考上述函数原型中的解释)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 14:48:24

openCV—Python(9)—— 图像平滑与滤波的相关文章

opencv python:边缘保留滤波(EPF)

EPF:E边缘,P保留,F滤波 import cv2 as cv import numpy as np def bi_demo(image): # bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None) """ 同时考虑空间与信息和灰度相似性,达到保边去噪的目的 双边滤波的核函数是空间域核与像素范围域核的综合结果: 在图像的平坦区域,像素值变化很小,对应的像素范围域权重接近于1,此时

OpenCV Python教程(1、图像的载入、显示和保存)

本文转载自 OpenCV Python教程(1.图像的载入.显示和保存)     作者 Daetalus 本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonOpenCV的配置这里就不介绍了. 注意,现在OpenCV for Python就是通过NumPy进行绑定的.所以在使用时必须掌握一些NumPy的相关知识! 图像就是一个矩阵,在OpenCV fo

Python+OpenCV图像处理(七)—— 滤波与模糊操作

过滤是信号和图像处理中基本的任务.其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息.过滤可以移除图像中的噪音.提取感兴趣的可视特征.允许图像重采样等等.频域分析将图像分成从低频到高频的不同部分.低频对应图像强度变化小的区域,而高频是图像强度变化非常大的区域.在频率分析领域的框架中,滤波器是一个用来增强图像中某个波段或频率并阻塞(或降低)其他频率波段的操作.低通滤波器是消除图像中高频部分,但保留低频部分.高通滤波器消除低频部分.参考博客:https://blog.csdn.net

OpenCV+Python 文字识别(重点图像透视变换)

1 # Author:Winter Liu is coming! 2 import cv2 as cv 3 import numpy as np 4 import pytesseract 5 6 7 # 预处理,高斯滤波(用处不大),4次开操作 8 # 过滤轮廓唯一 9 def contour_demo(img): 10 gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) 11 gray = cv.GaussianBlur(gray, (5, 5), 1) 12

基于Opencv的自适应中值滤波函数selfAdaptiveMedianBlur()

终于搞出来了:) #include <iostream> #include <opencv2/opencv.hpp> #include <vector> #include <algorithm> using namespace cv; using namespace std; //下面的宏,定义了在矩阵src的第m行.n列,ks*ks覆盖的矩形区域内的像素,并将像素压到矢量v中 //该覆盖区域的左上角坐标为(m,n),宽为ks,高为ks,要求src必须是单通

centos6.5下安装OpenCV+Python支持

Python调用opencv的原理是:opencv编译出共享库文件,python把这个共享库文件作为一个模块加载并使用.通俗点就是,编译opencv的时候开启python接口选项,编译好了会产生cv2.so(linux下)或者cv2.pyd(windows下)这个共享库文件,python代码中import这个cv2就可以用了.为了能正确import它,往往需要把cv2.so放在python找包能找到的路径下,或者修改PYTHONPATH环境变量让它包含cv2.so所在路径.此外,python的o

ubuntu14 opencv python 安装

本文记录了Ubuntu 14.04下使用源码手动安装OpenCV 3.0的过程.此外记录了在Python中安装及载入OpenCV的方法. 1.安装OpenCV所需的库(编译器.必须库.可选库) GCC 4.4.x or later CMake 2.6 or higher Git GTK+2.x or higher, including headers (libgtk2.0-dev) pkg-config Python 2.6 or later and Numpy 1.5 or later wit

.NET + OpenCV &amp; Python + OpenCV 配置

最近需要做一个图像识别的GUI应用,权衡了Opencv+ 1)QT,2)Python GUI,3).NET后选择了.NET... 本文给出C#+Opencv和Python+Opencv的相应参考,节省大家时间. (一)C#.NET + Opencv 1)下载并安装Emgu库(for opencv on .NET env) Download @ http://sourceforge.net/projects/emgucv/ 2)How to use opencv on C#? VS上配置Emgu(

openCV—Python(1)——初始化环境

本系列博客主要參考自--Adrian Rosebrock:<Practical Python and OpenCV: An Introductory,Example Driven Guide toImage Processing and Computer Vision> 一. 分步配置 分别安装下面工具 1.python2.7.x 2.Numpy和Scipy 3.Matplotlib 4.下载OpenCV后解压,提取路径 "\opencv\build\python\2.7"