数学之路-python计算实战(15)-机器视觉-滤波去噪(归一化块滤波)
- # -*- coding: utf-8 -*-
- #code:myhaspl@myhaspl.com
- #归一化块滤波
- import cv2
- import numpy as np
- fn="test3.jpg"
- myimg=cv2.imread(fn)
- img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)
- #加上高斯噪声,能够參考曾经博文中的内容
- ......
- ......
- #滤波去噪
- lbimg=cv2.blur(newimg,(3,3))
- cv2.imshow('src',newimg)
- cv2.imshow('dst',lbimg)
- cv2.waitKey()
- cv2.destroyAllWindows()
右图是加上噪声,左图是去除噪声后,尽管进行了图像模糊,但仍能比較清晰
依据原理,使用第3个脉冲响应函数(也有人称它为核函数),例如以下:
本博客全部内容是原创,假设转载请注明来源
http://blog.csdn.net/myhaspl/
用python实现这个算法
- #code:myhaspl@myhaspl.com
- #归一化块滤波
- ...
- ...
- #用第3个脉冲响应函数
- a=1/16.0
- kernel=a*np.array([[1,2,1],[2,4,2],[1,2,1]])
- for y in xrange(1,myh-1):
- for x in xrange(1,myw-1):
- lbimg[y,x]=np.sum(kernel*tmpimg[y-1:y+2,x-1:x+2])
- print ".",
效果例如以下图
Blurs an image using the normalized box filter.
- C++: void blur(InputArray src, OutputArray dst, Size ksize, Pointanchor=Point(-1,-1), int borderType=BORDER_DEFAULT )
- Python: cv2.blur(src, ksize[, dst[, anchor[, borderType]]]) → dst
-
Parameters: - src – input image; it can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U,CV_16S, CV_32F or CV_64F.
- dst – output image of the same size and type as src.
- ksize – blurring kernel size.
- anchor – anchor point; default value Point(-1,-1) means that the anchor is at the kernel center.
- borderType – border mode used to extrapolate pixels outside of the image.
注意,blur函数使用了第1个脉冲响应函数,例如以下:
The function smoothes an image using the kernel:
- # -*- coding: utf-8 -*-
- #code:myhaspl@myhaspl.com
- #归一化块滤波
- import cv2
- import numpy as np
- fn="test3.jpg"
- myimg=cv2.imread(fn)
- img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)
- #加上椒盐噪声
- #灰阶范围
- w=img.shape[1]
- h=img.shape[0]
- newimg=np.array(img)
- #噪声点数量
- noisecount=100000
- for k in xrange(0,noisecount):
- xi=int(np.random.uniform(0,newimg.shape[1]))
- xj=int(np.random.uniform(0,newimg.shape[0]))
- newimg[xj,xi]=255
- #滤波去噪
- lbimg=cv2.blur(newimg,(5,5))
- cv2.imshow('src',newimg)
- cv2.imshow('dst',lbimg)
- cv2.waitKey()
- cv2.destroyAllWindows()
本博客全部内容是原创,假设转载请注明来源
http://blog.csdn.net/myhaspl/
数学之路-python计算实战(15)-机器视觉-滤波去噪(归一化块滤波)的更多相关文章
- 数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)
Blurs an image using the median filter. C++: void medianBlur(InputArray src, OutputArray dst, int ks ...
- 数学之路-python计算实战(21)-机器视觉-拉普拉斯线性滤波
拉普拉斯线性滤波,.边缘检測 . When ksize == 1 , the Laplacian is computed by filtering the image with the follow ...
- 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波
拉普拉斯算子进行二维卷积计算,线性锐化滤波 # -*- coding: utf-8 -*- #线性锐化滤波-拉普拉斯算子进行二维卷积计算 #code:myhaspl@myhaspl.com impor ...
- 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
我们来看一个灰度图像,让表示灰度出现的次数,这样图像中灰度为 的像素的出现概率是 是图像中全部的灰度数, 是图像中全部的像素数, 实际上是图像的直方图,归一化到 . 把 作为相应于 的累计概率 ...
- 数学之路-python计算实战(19)-机器视觉-卷积滤波
filter2D Convolves an image with the kernel. C++: void filter2D(InputArray src, OutputArray dst, int ...
- 数学之路-python计算实战(9)-机器视觉-图像插值仿射
插值 Python: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst interpolation – interpol ...
- 数学之路-python计算实战(13)-机器视觉-图像增强
指数变换的基本表达式为:y=bc(x-a)-1 当中參数b.c控制曲线的变换形状,參数a控制曲线的位置. 指数变换的作用是扩展图像的高灰度级.压缩低灰度级.能够用于亮度过高的图像 本博客全部内容是原创 ...
- 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)
# -*- coding: utf-8 -*- #code:myhaspl@myhaspl.com #邻域平均法滤波,半径为2 import cv2 import numpy as np fn=&qu ...
- 数学之路-python计算实战(18)-机器视觉-滤波去噪(双边滤波与高斯滤波 )
高斯滤波就是对整幅图像进行加权平均的过程.每个像素点的值,都由其本身和邻域内的其它像素值经过加权平均后得到.高斯滤波的详细操作是:用一个模板(或称卷积.掩模)扫描图像中的每个像素.用模板确定的邻域内像 ...
随机推荐
- js之form表单的获取
js中获取form的方法: 1. 利用表单在文档中的索引或表单的name属性来引用表单 document.forms[i] //得到页面中的第i个表单 document.forms[formName] ...
- 转:触屏中的js事件
一.触摸事件 ontouchstartontouchmoveontouchendontouchcancel 目前移动端浏览器均支持这4个触摸事件,包括IE.由于触屏也支持MouseEvent,因此他们 ...
- 通过Qt样式表定制程序外观(比较通俗易懂)
1. 何为Qt样式表[喝小酒的网摘]http://blog.hehehehehe.cn/a/10270.htm2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. ...
- 简单浮点数除法模拟-hdu-4493-Tutor
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4493 题目意思: 给小数点后两位的12个月的工资,求出平均工资,输出离小数点后第二位最近的两位小数, ...
- Java数据类型BooleanDemo
- 从零开始学C++之IO流类库(四):输出流格式化(以操纵子方式格式化 以ios类成员函数方式格式化)
一.以操纵子方式格式化 数据输入输出的格式控制使用系统头文件<iomanip>中提供的操纵符.把它们作为插入操作符<<的输出对象即可.如setiosflags.setw.set ...
- sqlserver 三种恢复模式
sql server数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sql server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志.截断事务日志是删除己执行事务并把该日 ...
- ThinkPHP - session 数据库存储驱动
命名格式: Session + 驱动名称 + .class.php 所有的方法要有,但不一定要实现. <?php /** * @category Extend * @package Extend ...
- BestCoder Round #50 (div.1) 1003 The mook jong (HDU OJ 5366) 规律递推
题目:Click here 题意:bestcoder 上面有中文题目 分析:令f[i]为最后一个木人桩摆放在i位置的方案,令s[i]为f[i]的前缀和.很容易就能想到f[i]=s[i-3]+1,s[i ...
- oracle常见问题
1.无效的月份,一个可能是字符集的问题, alter session set nls_language=american alter session set nls_language='SIMPLIF ...