本节内容主要将如何平滑图像。如通过低通道滤波模糊图像。或者自定义滤波处理图像。

import cv2
import numpy as np
from matplotlib import pyplot as plt img = cv2.imread(r'C:\root\learn\python\opencvTest\img\opencvLog.jpg') kernel = np.ones((5,5),np.float32)/25
'''
2D滤波函数。
dst=cv2.filter2D(src,ddepth,kernel[,dst[,anchor[,delta[,borderType]]]])
src:原图像
dst:目标图像,与原图像尺寸和通过数相同
ddepth: 目标图像的所需深度(-1表示输出图像与原图像有相同的深度)
kernel: 卷积核,单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用拆分将图像拆分为单独的颜色平面,然后单独处理它们。
anchor: 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中。默认值(-1,-1)表示锚位于内核中心。
detal: 在将它们存储在dst之前,将可选值添加到已过滤的像素中。类似于偏置。
borderType: 像素外推法。
'''
dst = cv2.filter2D(img,-1,kernel)
'''
均值模糊
'''
blur = cv2.blur(img,(5,5)) '''
高斯模糊
'''
gaussianBlur = cv2.GaussianBlur(img,(5,5),0) '''
中值模糊
'''
median = cv2.medianBlur(img,5)
'''
双边滤波(高斯模糊的高级版本。去噪同时保持边缘锐化)
'''
bilBlur = cv2.bilateralFilter(img,9,75,75)
plt.subplot(161),plt.imshow(img),plt.title('Original')
plt.xticks([]),plt.yticks([])
plt.subplot(162),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]),plt.yticks([])
plt.subplot(163),plt.imshow(blur),plt.title('Blur')
plt.xticks([]),plt.yticks([])
plt.subplot(164),plt.imshow(gaussianBlur),plt.title('GaussianBlur')
plt.xticks([]),plt.yticks([])
plt.subplot(165),plt.imshow(median),plt.title('median')
plt.xticks([]),plt.yticks([])
plt.subplot(166),plt.imshow(bilBlur),plt.title('bilBlur')
plt.xticks([]),plt.yticks([])
plt.show() 图像结果:
 

初识OpenCV-Python - 007: 平滑图像的更多相关文章

  1. 【计算机视觉】OpenCV篇(6) - 平滑图像(卷积/滤波/模糊/降噪)

    平滑滤波 平滑滤波是低频增强的空间域滤波技术.空间域滤波技术即不经由傅立叶转换,直接处理影像中的像素,它的目的有两类:一类是模糊:另一类是消除噪音.空间域的平滑滤波一般采用简单平均法进行,就是求邻近像 ...

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

    原文地址:http://blog.csdn.net/sunny2038/article/details/9057415 转载请详细注明原作者及出处,谢谢! 本文是OpenCV  2 Computer ...

  3. Python下opencv使用笔记(图像频域滤波与傅里叶变换)

    Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog ...

  4. 深入学习OpenCV检测及分割图像的目标区域

    准备1:OpenCV常用图片转换技巧 在进行计算机视觉模型训练前,我们经常会用到图像增强的技巧来获取更多的样本,但是有些深度学习框架中的方法对图像的变换方式可能并不满足我们的需求,所以掌握OpenCV ...

  5. ubuntu14 opencv python 安装

    本文记录了Ubuntu 14.04下使用源码手动安装OpenCV 3.0的过程.此外记录了在Python中安装及载入OpenCV的方法. 1.安装OpenCV所需的库(编译器.必须库.可选库) GCC ...

  6. OpenCV Python教程(3、直方图的计算与显示)

    转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...

  7. opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓特征和几何矩

    阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. ...

  8. OpenCV + python 实现人脸检测(基于照片和视频进行检测)

    OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...

  9. opencv+python视频实时质心显示

    利用opencv+python实现以下功能: 1)获取实时视频,分解帧频: 2)将视频做二值化处理: 3) 将视频做滤波处理(去除噪点,获取准确轮廓个数): 4)识别图像轮廓: 5)计算质心: 6)描 ...

随机推荐

  1. 【转载】Visual Studio + VA 常用快捷键

    有过几年没怎么做window开发,发现回头再用VS忘记了好多快捷键,好记性真是不如烂笔头. 快捷键习惯设置:Tools->Options->Keyboard:Apply the follo ...

  2. 《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?

    DNS服务器,即域名服务器,它作为域名和IP地址之间的桥梁,在互联网访问中,起到至关重要的作用.每一个互联网上的域名,背后都至少有一个对应的DNS.对于一个企业来说,如果你的DNS服务器因为攻击而无法 ...

  3. dajian

    http://blog.csdn.net/inject2006/article/details/3064399 http://bbs.dospy.com/thread-16173173-1-464-1 ...

  4. PyTorch常用函数总结

    将一个tensor分到多个GPU上:torch.cuda.comm.scatter

  5. jquery scrollTop() 方法

    原文地址:http://www.w3school.com.cn/jquery/css_scrolltop.asp 实例 设置 元素中滚动条的垂直偏移: $(".btn1").cli ...

  6. shell 单引号&双引号的使用

    使用双引号: shell> X='parameter' shell> echo "Hello $X" Hello parameter 单引号中嵌套单引号: shell& ...

  7. Codeforces Round #525 E - Ehab and a component choosing problem

    题目大意: 在一棵树中 选出k个联通块 使得 这k个联通块的点权总和 / k 最大 并且这k个联通块不相互覆盖(即一个点只能属于一个联通块) 如果有多种方案,找到k最大的那种 给定n 有n个点 给定n ...

  8. 网页设计师神器,快速生成网站配色、字型等风格的工具——Stylify Me

    在设计网页时,最重要的一项便是网页的配色,颜色的使用在网页制作中起着非常关键的作用,不同的网站有着自己不同的风格,也有着自己不同的颜色.今天给大家介绍一个在线生成网站配色的工具——Stylify Me ...

  9. PROJECT | 四则运算UI设计 - PSP表格&需求分析

    PSP表格(TP版) 需求分析 [GUI编程语言选择] 考虑到Java编写GUI效率偏低且界面不算特别美观(即使有Windowbuilder插件帮助),所以我们使用控件更多,开发效率更高,具有集成开发 ...

  10. centos7使用iptables作为防火墙方法

    centos7使用iptables作为防火墙方法查看firewalld状态: systemctl status firewalld将centos7默认的firewalld停止,并将iptables作为 ...