python代码学习-数据处理图片加遮挡、噪声、模糊

(一)python代码学习-数据处理图片加遮挡

代码:

from matplotlib import pyplot as plt
from PIL import Image, ImageDraw
import pylab
import numpy as np
impath = "000001.jpg"
img1 = Image.open(impath)
img1 = np.asarray(img1)/255.00
img2 = Image.open(impath)
draw = ImageDraw.Draw(img2)
draw.rectangle((60,90,100,120), fill = (0,0,0))
img2 = np.asarray(img2)/255.00
plt.figure(1)
plt.subplot(121)
plt.imshow(img1)
plt.title("Origin picture")
plt.subplot(122)
plt.imshow(img2)
plt.title("Add obstacle")
plt.savefig("obstacle_image.jpg")
pylab.show()

(二)python代码学习-数据处理:图片加噪声

数据加噪:

- 高斯噪声(Gaussian noise)是指它的概率密度函数服从高斯分布的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

- 椒盐噪声(salt-and-pepper noise)是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色(0),椒=黑色(255)。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。

为图片增加高斯噪声代码

from matplotlib import pyplot as plt
from skimage import io
import skimage
import pylab
impath = "000001.jpg"
image = io.imread(impath)
img1 = image / 255.00
img2 = skimage.util.random_noise(image,mode='gaussian',seed=None,clip=True)
plt.figure(1)
plt.subplot(121)
plt.imshow(img1)
plt.title("Origin picture")
plt.subplot(122)
plt.imshow(img2)
plt.title("Add Gaussian noise")
pylab.show()
plt.savefig("noise_image.jpg")
  • 增加高斯噪声
shimage.util.random_noise(image,mode ='gaussian',seed=None,clip=True)

注意事项:

  • Peckle, Poisson, Localvar, and Gaussian noise 加上噪声后,值可能为负值,也可能超过255;默认情况下,clip参数值为True,将会clip掉这些超过区间的点,如果clip设置为False,就要注意有可能包含一些超过区间的点。
  • Skimage读取图像是RGB,而Opencv是BGR
  • Skimage读取图像后是(height, width, channel)<br>

(三)python代码学习-数据处理:数据加模糊

高斯模糊:

  • 本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和。
  • 即用高斯分布权值矩阵与原始图像矩阵做卷积运算。

opencv 函数:

blur = cv2.GaussianBlur(img,(5,5),0)

函数参数说明:

  • (5, 5)表示高斯矩阵的长与宽都是5,
  • 标准差取0时OpenCV会根据高斯矩阵的尺寸自己计算。
  • 高斯矩阵的尺寸越大,标准差越大,处理过的图像模糊程度越大。

图片高斯模糊代码

from matplotlib import pyplot as plt
import cv2
import pylab
impath = "000001.jpg"
kernel_size = (5,5)
sigma = 1.5
img11 = cv2.imread(impath)
# BGR -> RGB
b,g,r=cv2.split(img11)
img11=cv2.merge([r,g,b])
# BGR -> RGB
# img2=img[: , : , : : -1]
img1 = img11/255.00
img2 = cv2.GaussianBlur(img1,kernel_size,sigma)
# cv2.imwrite(blur_image, img2)
plt.figure(1)
plt.subplot(121)
plt.imshow(img1)
plt.title("Origin picture")
plt.subplot(122)
plt.imshow(img2)
plt.title("Add Gaussian Blur")
plt.savefig("blur_image.jpg")
pylab.show()

本文分享自微信公众号 - AI深度学习求索(AIDeepLearningQ)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏smy

一张图解释负载均衡

首先当大量用户访问时候,先请求到nignx服务器,因为nignx对于高并发支持较好,所以由nignx服务器将访问需求分配给不同的apache服务器,apache...

21330
来自专栏GreenLeaves

TFS2018环境搭建一硬件要求

TFS可以安装在Windows Server和Windows PC操作系统中,但是TFS2018和2018只支持64位操作系统中,早期的版本没有操作系统的位数限...

41030
来自专栏我是攻城师

理解BitMap算法的原理

位图:一种常用的数据结构,代表了有限域中的稠集(dense set),每一个元素至少出现一次,没有其他的数据和元素相关联。在索引,数据压缩,海量数据处理等方面有...

25230
来自专栏大数据文摘

迷人又诡异的辛普森悖论:同一个数据集是如何证明两个完全相反的观点的?

在辛普森悖论中,餐馆可以同时比竞争对手更好或更差,锻炼可以降低和增加疾病的风险,同样的数据集能够用于证明两个完全相反的论点。

15830
来自专栏chenssy

多线程:为什么在while循环中加入System.out.println,线程可以停止

这个我们都知道,由于 stopReqested 的更新值在主内存中,而线程栈中的值不是最新的,所以会一直循环,线程并不能停止。加上 Volatile 关键字后,...

21440
来自专栏编程坑太多

『高级篇』docker之Mesos集群架构图(23)

11840
来自专栏数据结构笔记

python基础类型(一):字符串和列表

注意到最后三个的单双引号是嵌套使用的,但是最后一个的使用方法是错误的,因为当我们混合使用两种引号时必须有一种用来划分字符串的边界,即在两边的引号不能出现在字符串...

13920
来自专栏机器之心

Diss所有深度生成模型,DeepMind说它们真的不知道到底不知道什么

深度学习在应用层面获得了巨大成功,这些实际应用一般都希望利用判别模型构建条件分布 p(y|x),其中 y 是标签、x 是特征。但这些判别模型无法处理从其他分布中...

11610
来自专栏Python专栏

200行代码,一行行教你自制微信机器人

1) 用一个windows客户端工具运营公众号,真的很局限。虽然工具的功能很强大,能自动添加好友,自动拉好友入群,关键字回复等等,但是有一个绕不开的点,它是一款...

62120
来自专栏苦逼的码农

一些常用的算法技巧总结

数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些...

21530

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励