python的N个小功能(高斯模糊原理及实践)
原理:
二维高斯函数

1) 为了计算权重矩阵,需要设定σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:

2) 这9个点的权重总和等于0.4787147,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵。

有了权重矩阵,就可以计算高斯模糊的值了。
3) 假设现有9个像素点,灰度值(0-255)如下:

4) 每个点乘以自己的权重值:

5) 得到

将这9个值加起来,就是中心点的高斯模糊的值。
对所有点重复这个过程,就得到了高斯模糊后的图像。如果原图是彩色图片,可以对RGB三个通道分别做高斯模糊。
############################################################################################高斯模糊,按照给定的txt文档每4个数据模糊相应位置#################
###############################################################################
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 07 14:00:00 2017
@author: sl
"""
import os
from PIL import Image, ImageFilter
class MyGaussianBlur(ImageFilter.Filter):
name = "GaussianBlur"
def __init__(self, radius=2, bounds=None):
self.radius = radius
self.bounds = bounds
def filter(self, image):
if self.bounds:
clips = image.crop(self.bounds).gaussian_blur(self.radius) ###图片的最前头拷贝一部分图片(使用crop函数),进行高斯模糊处理
image.paste(clips, self.bounds) ###粘贴到需要修改的图片上,来完成相应覆盖
return image
else:
return image.gaussian_blur(self.radius)
image = Image.open(r"G:\test.jpg")
i=0
a=0
b=0
c=0
d=0
j=0
num=0
for line in open(r"G:\a.txt"):
j=j+1
num=j
if num!=0:
for line in open(r"G:\a.txt"):
i=i+1
if((i%4)==1):
a=int(line)
elif((i%4)==2):
b=int(line)
elif((i%4)==3):
c=int(line)
else:
d=int(line)
if((i%num)==4):
h=min(20,int((c-a)/4))
w=min(20,int((d-b)/4))
bounds = (a+h,b+w,c-h,d-w)
image = image.filter(MyGaussianBlur(radius=29, bounds=bounds))
elif((i%num)==8):
h=min(5,int((c-a)/4))
w=min(5,int((d-b)/4))
bounds = (a+h,b+w,c-h,d-w)
image = image.filter(MyGaussianBlur(radius=29, bounds=bounds))
else:
h=min(10,int((c-a)/4))
w=min(10,int((d-b)/4))
bounds = (a+h,b+w,c-h,d-w)
image = image.filter(MyGaussianBlur(radius=29, bounds=bounds))
if num==16:
image.save('G:\\aaa.jpg')
else:
image.save('G:\\pp\\aaa.jpg')
python的N个小功能(高斯模糊原理及实践)的更多相关文章
- python的N个小功能(找到符合要求的图片,重命名,改格式,缩放,进行随机分配)
########################################################################## 循环读取该目录下所有子目录和子文件 ####### ...
- python的N个小功能(找到要爬取的验证码链接,并大量下载验证码样本)
# -*- coding: utf-8 -*- """ Created on Mon Mar 21 11:04:54 2017 @author: sl "&qu ...
- python的N个小功能(图片预处理:打开图片,滤波器,增强,灰度图转换,去噪,二值化,切割,保存)
############################################################################################# ###### ...
- python的N个小功能(连接数据库并下载相应位置的图片)
#################################################################################################### ...
- python的N个小功能(文本字段对应数值,经纬度计算距离,两个时间点计算时间间隔)
案例1 >>> import pandas as pd >>> df=pd.DataFrame({'A':[1,2,3],'B':[1,2,3],'C':[1,2, ...
- python的N个小功能之正则匹配
1.. 匹配任意除换行符“\n”外的字符:2.*表示匹配前一个字符0次或无限次:3.+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复,惰性匹配:4. .*? 表示匹配任意 ...
- python的N个小功能(文件内容的匹配替换)
# -*- coding: utf-8 -*- """ Created on Fri Feb 17 20:25:05 2017 @author: who "&q ...
- python的N个小功能(更新文件)
########################################################################## #对于第二份文件:第一份与第二份不相同,以第二份为 ...
- python实现简单的循环购物车小功能
python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...
随机推荐
- 关于第11周课堂mini dc的课堂练习
测试代码: 码云链接 import java.util.Scanner; public class MyDCTester { public static void main(String[] args ...
- 虚拟机安装&Linux初探
学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 安装虚拟机的过程还算顺利.除了在安装增强设备功能时需要将之前的硬盘弹出之外,没有遇到其他的问题. 通过实 ...
- Nginx入门篇(五)之LNMP环境应用
一.LNMP组合工作原理 (1)用户通过浏览器输入域名请求Nginx web服务: (2)Nginx对请求的资源进行判断,如果是静态资源,则由Nginx返回给用户:如果是动态请求(.php文件),那么 ...
- Java or Python?测试开发工程师如何选择合适的编程语言?
很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...
- Linux 安装Redis<集群版>(使用Mac远程访问)
阅读本文需要先阅读安装Redis<准备> 一 架构细节 所有的redis节点彼此互联(PING-PONG机制) 内部使用二进制协议优化传输速度和带宽 节点的fail是通过集群中超过半数的节 ...
- Unity中C#单例模式使用总结
一.单例模式优点 单例模式核心在于对于某个单例类,在系统中同时只存在唯一一个实例,并且该实例容易被外界所访问: 意味着在内存中,只存在一个实例,减少了内存开销: 二.单例模式特点 只存在唯一一个实例: ...
- CMDBuild2.4.3安装配置
参考文档: 官网:http://www.cmdbuild.org/en 参考:http://blog.csdn.net/shawn210/article/details/70230248 本文涉及CM ...
- spring-boot Jpa配置
spring.jpa.hibernate.ddl-auto ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空 ddl-auto:create-drop---- ...
- 哈夫曼(Huffman)树+哈夫曼编码
前天acm实验课,老师教了几种排序,抓的一套题上有一个哈夫曼树的题,正好之前离散数学也讲过哈夫曼树,这里我就结合课本,整理一篇关于哈夫曼树的博客. 主要摘自https://www.cnblogs.co ...
- 王者荣耀交流协会第一次scrum会议
照片: 拍照的人是我(高远博),没有出镜.开会时间是17:00到17:37. 昨天的成绩: (1)优化了折线图界面 今天的计划: (1)小组成员汇报昨日成果. (2)小组成员继续推进任务. 遇到的困难 ...