;示例: def test_blur(self): self.blur = self.img.filter(ImageFilter.BLUR) # self.blur.show () self.blur.save("image09_blur.jpg")显示效果:图片2.5 细节增强说明:使图像中细节更加明显;方法:ImageFilter.DETAIL;示例: ("image10_detail.jpg")显示效果:图片2.6 不同灰度边缘增强说明:加强和改善图像中不同灰度区域之间的边界和轮廓;方法:ImageFilter.EDGE_ENHANCE;示例: (self): self.find_edges = self.img.filter(ImageFilter.FIND_EDGES) self.find_edges.save( (ImageFilter.SHARPEN) self.sharpen.save("image15_sharpen.jpg")显示效果:图片3 完整源码# -*- coding:utf-8
最常用模块为Image模块、ImageFilter模块、ImageEnhance模块。 类的解释 ImageFilter类的预定义过滤方法 方法表示 描述 ImageFilter.BLUK 图像的模糊效果 ImageFilter.CONTOUR 图像的轮廓效果 ImageFilter.DETAIL 图像的细节效果 ImageFilter.EDGE_ENHANCE 图像的边界加强效果 ImageFilter.EDGE_ENHANCE_MORE 图像的阔值边界加强效果 ImageFilter.EMBOSS 图像的浮雕效果 ImageFilter.FIND_EDGES 图像的边界效果 ImageFilter.SMOOTH 图像的平滑效果 ImageFilter.SMOOTH_MORE 图像的阔值平滑效果 ImageFilter.SHARPEN 图像的锐化效果 引用方法: 1 from PIL import ImageFilter 2 im=Image.open("D:\\我的文件\\Python\
PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。 二、安装库函数 ? ? 三、使用库函数Image类 —— 基本图像处理 1. 类 —— 图像过滤 1.调用ImageFilter类 from PIL import ImageFilter 2. ImageFilter类预定义图像过滤方法 方法 说明 ImageFilter.BLUR 图像的模糊效果 ImageFilter.CONTOUR 图像的轮廓效果 ImageFilter.DETAIL 图像的细节效果 ImageFilter.EDGE_ENHANCE 图像的边界加强效果 ImageFilter.EDGE_ENHANCE_MORE 图像的阈值边界加强效果 ImageFilter.EMBOSS 图像的浮雕效果 ImageFilter.FIND_EDGES 图像的边界效果 ImageFilter.SMOOTH 图像的平滑效果 ImageFilter.SMOOTH_MORE 图像的阈值平滑效果 ImageFilter.SHARPEN
= im.filter(ImageFilter.CONTOUR) contour.show() ? 轧花效果 emboss = im.filter(ImageFilter.EMBOSS) emboss.save('D:/emboss.png') ? 边缘查找 edges = im.filter(ImageFilter.FIND_EDGES) edges.save('D:/edges.png') ? 图像锐化增强 sharpen = im.filter(ImageFilter.SHARPEN) sharpen.save('D:/sharpen.png') ? USM锐化增强 usm = im.filter(ImageFilter.UnsharpMask) usm.save('D:/usm.png') ?
= im.filter(ImageFilter.CONTOUR) contour.show() ? 轧花效果 emboss = im.filter(ImageFilter.EMBOSS) emboss.save('D:/emboss.png') ? 边缘查找 edges = im.filter(ImageFilter.FIND_EDGES) edges.save('D:/edges.png') ? 图像锐化增强 sharpen = im.filter(ImageFilter.SHARPEN) sharpen.save('D:/sharpen.png') ? USM锐化增强 usm = im.filter(ImageFilter.UnsharpMask) usm.save('D:/usm.png') ?
from PIL import Image, ImageFilter, ImageDraw, ImageFont, ImageEnhance, ImageFilter image1 = Image.open ) image.show() def 图片MinFilter(image): image = image.filter(ImageFilter.MinFilter) image.show () def 图片转换黑白线条(image): image = image.filter(ImageFilter.CONTOUR) image.show() def 图片EMBOSS (image): image = image.filter(ImageFilter.EMBOSS) image.show() def 图片FIND_EDGES(image): image = image.filter(ImageFilter.FIND_EDGES) image.show()
/test.png') # im.filter(ImageFilter.GaussianBlur) # 高斯模糊 =>画圈取平均值 # im.filter(ImageFilter.BLUR) # 普通模糊 # im.filter(ImageFilter.EDGE_ENHANCE) # 边缘增强 # im.filter(ImageFilter.FIND_EDGES) # 找到边缘 # im.filter(ImageFilter.EMBOSS) # 浮雕 # im.filter(ImageFilter.CONTOUR) # 轮廓 # im.filter(ImageFilter.SHARPEN ) # 锐化 # im.filter(ImageFilter.SMOOTH) # 平滑 # im.filter(ImageFilter.DETAIL) # 细节 imf = im.filter (ImageFilter.GaussianBlur) imf.show() 图片裁剪及旋转 from PIL import Image, ImageFilter im = Image.open('.
构造时必须传入尺寸 filter 参数,其类型是 ImageFilter。 final ui.ImageFilter filter; 2.BackdropFilter 的使用 源码中有一个 BackdropFilter 组件的测试案例,我们先基于这个案例,看一下 BackdropFilter 认识 ImageFilter 首先 ImageFilter 是一个抽象类,但它可以通过命名构造创建对象,如下有三种构造方式。 拿 ImageFilter.blur 来说,可以看到构造前面有一个 factory 关键字,以此让抽象类也可以创建对象。 除了通过 ImageFilter.blur 创建 模糊遮罩,还可以通过 ImageFilter.matrix 对区域内进行矩阵变换,如下面的 skewX。
from PIL import Image,ImageFilter imga=Image.open(r'C:\Users\xpp\Desktop\lena.jpg') w,h=imga.size img_output=Image.new('RGB',(2*w,h)) img_output.paste(imga,(0,0)) fltrs=[] fltrs.append(ImageFilter.EDGE_ENHANCE ) fltrs.append(ImageFilter.FIND_EDGES) fltrs.append(ImageFilter.GaussianBlur) for fltr in fltrs: imga.point(lambda i:i*0.4) img_output.paste(imgc,(2*w,0)) img_output.show() from PIL import Image,ImageFilter ) fltrs.append(ImageFilter.FIND_EDGES) fltrs.append(ImageFilter.GaussianBlur) for fltr in fltrs:
它继承自 SingleChildRenderObjectWidget,必须传入 imageFilter 参数,类型为 ImageFilter。 这和 BackdropFilter 组件中的 imageFilter 是一样的。 2. ImageFiltered 组件的使用 如下是通过 ImageFiltered 对图片进行模糊的效果,imageFilter 参数的使用和 BackdropFilter 一样,这里不再赘述。 resamplingEnabled = true; runApp(BlocWrapper( child: ImageFiltered( imageFilter: ImageFilter.blur 在 _ImageFilterRenderObject#paint 中创建 ImageFilterLayer 对象 layer,并将传入的 imageFilter 设置给 layer 。
I (32-bit signed integer pixels) · F (32-bit floating point pixels) Filter from PIL import Image, ImageFilter im = Image.open(‘1.png’) # 高斯模糊 im.filter(ImageFilter.GaussianBlur) # 普通模糊 im.filter(ImageFilter.BLUR ) # 边缘增强 im.filter(ImageFilter.EDGE_ENHANCE) # 找到边缘 im.filter(ImageFilter.FIND_EDGES) # 浮雕 im.filter (ImageFilter.EMBOSS) # 轮廓 im.filter(ImageFilter.CONTOUR) # 锐化 im.filter(ImageFilter.SHARPEN) # 平滑 im.filter(ImageFilter.SMOOTH) # 细节 im.filter(ImageFilter.DETAIL) Format format属性定义了图像的格式,如果图像不是从文件打开的
每个滤镜由一组图像变换组成,并使用ImageFilter结构定义,如下所示: struct ImageFilter { var name: String var icon: Icon 然后,我们可以根据需要组合任意数量的上述类型,以形成每个滤镜——例如,通过一系列转换使图像具有某种“戏剧性”外观的滤镜: let dramaticFilter = ImageFilter( name 上面方法的优点在于,我们回到了将ImageTransform定义为协议时所具有的灵活性和强大功能,同时仍然能够使用与使用枚举时大致相同的点语法: let dramaticFilter = ImageFilter { static var dramatic: Self { ImageFilter( name: "Dramatic", icon : ImageFilter) -> Image?
$_POST[‘effect’] : -1; switch($effect) { case IMG_FILTER_NEGATE: imagefilter($image , IMG_FILTER_NEGATE ); //将图像中所有颜色反转 break; case IMG_FILTER_GRAYSCALE: imagefilter($image , IMG_FILTER_GRAYSCALE); //将图像转换为灰度的 : imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR); //用高斯算法模糊图像 break; } imagejpeg($image , $dir.’/’. $_GET[‘e’] : -1; switch($effect) { case IMG_FILTER_NEGATE: imagefilter($image , IMG_FILTER_NEGATE); : imagefilter($image , IMG_FILTER_EMBOSS); break; case IMG_FILTER_GAUSSIAN_BLUR: imagefilter($image ,
/filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>imageFilter LogFilter execute"); chain.doFilter(request, response); } } ---- @WebFilter(filterName = "imageFilter ") public class ImageFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("ImageFilter execute"); chain.doFilter(request, response); } } 3.然后你访问任意一个servlet方法,LogFilter和ImageFilter
cool风格的清明上河图 (3)利用PIL中函数实现 PIL中通过调用filter函数,参数传递ImageFilter下的滤镜参数即可实现各种滤镜效果的图案 def lut_PIL(self) : src=Image.open(self.path) im2 = src.filter(ImageFilter.BLUR) # 模糊滤镜 im2.save( (ImageFilter.EDGE_ENHANCE_MORE) # 加倍凸显边界 im2.save("qm_4.jpg") im2 = src.filter(ImageFilter.FIND_EDGES ) # 只保留边界 im2.save("qm_5.jpg") im2 = src.filter(ImageFilter.CONTOUR) # 铅笔画效果 im2.save("qm_6.jpg") im2 = src.filter(ImageFilter.SMOOTH_MORE) # 平滑滤镜(阀值更大) img.filter(ImageFilter.EMBOSS
二、ImageFiltered 的模糊效果 通过 ImageFilter.blur 可以构建出 _GaussianBlurImageFilter ,也就是高斯模糊图像过滤器。 ImageFiltered( imageFilter: ImageFilter.blur( sigmaX: _sigmaX, sigmaY: _sigmaY, tileMode 感觉这个效果是最自然的: 这就是通过 ImageFilter.blur 实现模糊的效果。 可以看出 变换中心 并不能组件的中心: ImageFiltered( imageFilter: ImageFilter.matrix( Matrix4.rotationZ(_sigmaX/ 四、ColorFilter 与 ImageFiltered ColorFilter作为 ImageFilter 的实现类,自然也可以在 ImageFiltered 中使用。
一波代码开干 from PIL import Image from PIL import ImageFilter ## 调取ImageFilter img = Image.open("1.jpg") blu = img.filter(ImageFilter.BLUR) ##均值滤波 con = img.filter(ImageFilter.CONTOUR ) ##找轮廓 edge = img.filter(ImageFilter.FIND_EDGES) ##边缘检测 blu.save('均值滤波.jpg') con.save
ImageGrab.grab((0,0,800,200)) #截取屏幕指定区域的图像 >>> im = ImageGrab.grab() #不带参数表示全屏幕截图 (14)图像增强 >>> from PIL import ImageFilter >>> im = im.filter(ImageFilter.DETAIL) #创建滤波器,使用不同的卷积核 >>> im = im.filter(ImageFilter.EDGE_ENHANCE ) #边缘增强 >>> im = im.filter(ImageFilter.EDGE_ENHANCE_MORE) #边缘增强 (15)图像模糊 >>> im = im.filter(ImageFilter.BLUR ) >>> im = im.filter(ImageFilter.GaussianBlur) #高斯模糊 >>> im.filter(ImageFilter.MedianFilter) #中值滤波 ( 16)图像边缘提取 >>> im = im.filter(ImageFilter.FIND_EDGES) (17)图像点运算 >>> im = im.point(lambda i:i*1.3) #整体变亮
六、ImageFilter 过滤图像的效果。 from PIL import Image, ImageFilter im = Image.open('4.jpg') # 高斯模糊 im1=im.filter(ImageFilter.GaussianBlur ) im3.show() # 找到边缘 im4=im.filter(ImageFilter.FIND_EDGES) im4.show() # 浮雕 im5=im.filter(ImageFilter.EMBOSS ) im5.show() # 轮廓 im6=im.filter(ImageFilter.CONTOUR) im6.show() # 锐化 im7=im.filter(ImageFilter.SHARPEN ) im7.show() # 平滑 im8=im.filter(ImageFilter.SMOOTH) im8.show() #阙值平滑 im9=im.filter(ImageFilter.SMOOTH_MORE
这些 Filter 都放置在 ImageFilter 模块中,ImageFilter主要包括两部分内容,一是内置的 Filter,如 BLUR、DETAIL等,另一部分是 Filter 函数,可以指定不同的参数获得不同的效果 示例如下: import ImageFilter im1 = im.filter(ImageFilter.BLUR) im2 = im.filter(ImageFilter.MinFilter (3)) im3 = im.filter(ImageFilter.MinFilter()) # same as MinFilter(3) 可以看到 ImageFilter 模块的使用非常简单 图 16使用 SHARPEN 图 17使用 SMOOTH 图 18使用 SMOOTH_MORE 以上是几种内置的 Filter 的效果图,除此之外, ImageFilter