用Python公益诉讼实现几个简单的图片特效

  

<>强导入numpy,公益诉讼

  

numpy用来做矩阵运算,公益诉讼用来读取图片。

        进口numpy np   从公益诉讼导入图像      

<强>读取图片,然后转换成RGB模式存在矩阵里

        我=Image.open (imagename) .convert (RGB)   arr=np.array (im)      

查看加勒比海盗的形状,可以看到加勒比海盗是个3维的数,组数组大小等于长*宽* 3

        在[566]:arr.shape   [566]:(313、450、3)      

每个像素有三个数字表示,分别对应(R, G, B)

        在[567]:加勒比海盗[0][0]   [567]:阵列([6 4 9],dtype=uint8)      

原始图片

  

用Python公益诉讼实现几个简单的图片特效

  

<强>彩色转黑白

  

把像素的R, G, B三个通道数值都置为<代码> R * 0.299 + G * 0.587 + B * 0.114

        def blackWithe (imagename):   # r, g, b=r * 0.299 + g * 0.114 * 0.587 + b   我=np.asarray (Image.open (imagename) .convert (RGB))   反式=np.array ([(0.299, 0.587, 0.114), (0.299, 0.587, 0.114), (0.299, 0.587, 0.114]]) .transpose ()   我=np.dot (im,反式)   返回Image.fromarray (np.array (im) .astype (uint8))      

用Python公益诉讼实现几个简单的图片特效

  

<>强流年

  

把R通道的数值开平方,然后乘以一个参数

        def短暂(imagename params=12):   我=np.asarray (Image.open (imagename) .convert (RGB))   im1=np.sqrt (im *(1.0, 0.0, 0.0)) *参数   im2=im * (0.0, 1.0, 1.0)   我=im1 + im2   返回Image.fromarray (np.array (im) .astype (uint8))      

用Python公益诉讼实现几个简单的图片特效

  

<强>旧电影

  

把像素的R, G, B三个通道数值,3个通道的分别乘以3个参数后求和,最后把超过255的值置为255

        def oldFilm (imagename):   我=np.asarray (Image.open (imagename) .convert (RGB))   #=r * 0.393 + g * 0.769 + b * 0.189 g=r * 0.349 + g * 0.686 b + b * 0.168=r b + g * 0.534 * 0.131 * 0.272   反式=np.array ([(0.393, 0.769, 0.189), (0.349, 0.686, 0.168), (0.272, 0.534, 0.131]]) .transpose ()   #剪辑超过255的颜色置为255   反式,im=np.dot (im) .clip (max=255)   返回Image.fromarray (np.array (im) .astype (uint8))      

用Python公益诉讼实现几个简单的图片特效

  

<强>反色

  

这个最简单了,用255减去每个通道的原来的数值

        def反向(imagename):   我=255 - np.asarray (Image.open (imagename) .convert (RGB))   返回Image.fromarray (np.array (im) .astype (uint8))      

用Python公益诉讼实现几个简单的图片特效

  

PS:示例

        从公益诉讼导入图像,ImageFilter      #打开一个jpg图像文件,注意是当前路径:   我=Image.open (“Penguins.jpg”)            #模糊   im2=im.filter (ImageFilter.BLUR)   #模糊可设置模糊的程度   im22=im.filter (ImageFilter.BoxBlur (200))   #轮廓滤波   im3=im.filter (ImageFilter.CONTOUR)   #边缘增强滤波(锐化)   im4=im.filter (ImageFilter.EDGE_ENHANCE)   #浮雕滤波   im5=im.filter (ImageFilter.EMBOSS)   #寻找边缘信息的滤波   im6=im.filter (ImageFilter.FIND_EDGES)      im2.save (BLUR.jpg, jpeg)   im3.save (CONTOUR.jpg, jpeg)   im4.save (EDGE_ENHANCE.jpg, jpeg)   im5.save (EMBOSS.jpg, jpeg)   im6.save (FIND_EDGES.jpg, jpeg)   im22.save (“BoxBlur (200) . jpg”, jpeg)      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

用Python公益诉讼实现几个简单的图片特效