<>强导入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)
原始图片
<强>彩色转黑白强>
把像素的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))
<>强流年强>
把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))
<强>旧电影强>
把像素的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))
<强>反色强>
这个最简单了,用255减去每个通道的原来的数值
def反向(imagename): 我=255 - np.asarray (Image.open (imagename) .convert (RGB)) 返回Image.fromarray (np.array (im) .astype (uint8))
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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。