您的位置 首页 百科知识

用scipy进行图像滤波处理(python3.6)

用scipy进行图像滤波处理(python3.6)

本文,用scipy模块对图像进行滤波处理。

给定图片如下。

代码如下:

import scipy.misc as sc

b = sc.imread('0.png') #读图,以数组的形式返回

c = sc.imfilter(b,'blur') #滤波处理

sc.imsave('1.png',c) #保存图片

查看滤波函数的用法:

help(sc.imfilter)

…………

imfilter(array, str)

其中,array是数组,代表图片的像素数据;

str是字符串,用来指定处理效果,包括:

blur、contour、detail、edge_enhance、edge_enhance_more、emboss、find_edges、smooth、smooth_more、sharpen。

c = sc.imfilter(b,'blur')是模糊处理,效果如下。

连续多次模糊处理:

for i in range(6):

c = sc.imfilter(c,'blur')

或者

for i in range(36):

c = sc.imfilter(c,'blur')

c = sc.imfilter(b,'contour')

显示轮廓。

多次重复处理:

for i in range(36):

c = sc.imfilter(c,'contour')

c = sc.imfilter(b,'detail')

这是清晰化处理吗?

看看多次处理的后果:

for i in range(36):

c = sc.imfilter(c,'detail')

emboss

浮雕效果。

多次浮雕效果。

边界检测:

c = sc.imfilter(b,'find_edges')

边界检测,反色处理:

c = sc.imfilter(b,'find_edges')

sc.imsave('2.png',255-c)

多次边界检测,然后反色处理:

for i in range(36):

c = sc.imfilter(c,'find_edges')

sc.imsave('2.png',255-c)

多次光滑处理:

smooth

多次锐化处理:

sharpen

反复模糊+锐化:

for i in range(20):

c = sc.imfilter(c,'sharpen')

c = sc.imfilter(c,'blur')

以及

for i in range(50):

c = sc.imfilter(c,'sharpen')

c = sc.imfilter(c,'blur')

下面,第一幅图是反复detail+smooth各500次:

for i in range(500):

c = sc.imfilter(c,'detail')

c = sc.imfilter(c,'smooth')

第二幅是detail 500次:

for i in range(500):

c = sc.imfilter(c,'detail')

第三幅是smooth 500次:

for i in range(500):

c = sc.imfilter(c,'smooth')

上一篇 过年回家给父母带什么礼物好
下一篇 防小三有学问
扫一扫,手机访问

扫一扫,手机浏览