300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python PIL.Image 图像处理

python PIL.Image 图像处理

时间:2021-08-14 16:15:30

相关推荐

python PIL.Image 图像处理

图像处理

图像的RGB色彩模式

图像一般使用RGB色彩模式,即每个像素点的颜色由RGB组成(红、绿、蓝)

RGB三个颜色通道的变化和叠加得到各种颜色(256^3=1.68e+7),其中

R红色,取值范围 0-255

G绿色,取值范围 0-255

B蓝色,取值范围 0-255

RGB形成的颜色包括了人类视力所能感知的所有颜色

PIL库

PIL,python image library

PIP库是一个具有强大图像处理能力的第三方库

cmd–>pip install pillow

PIL类Image

Image是PIP库中代表一个图像的类(对象)

图像加载

from PIL import Imageimport numpy as npim=np.array(Image.open("E:/python/Spyder_analysis/plot.png"))print(im.shape,im.dtype)print(im)

图像是一个三维数组,维度分别是高度、宽度和像素RGB值

图像的处理步骤:

1、打开图像

2、处理图像

3、生成图像

4、保存图像

打开图像可以按原像像素打开图像

可以按灰度打开图像.convert(‘L’) 生成二维数据,生成灰度的变化

a=np.array(Image.open(“test.jpg”).convert(‘L’))

图像的变换

读入图像,获得像素RGB值,修改后保存为新的文件

from PIL import Imageimport numpy as npa=np.array(Image.open("E:/python/Spyder_analysis/test.jpg"))print(a.shape,a.dtype)b=[255,255,255]-aim=Image.fromarray(b.astype('uint8'))im.save("E:/python/Spyder_analysis/plot_255_8.jpg")

图像变换的处理

b=255-a #方式一取反 c=(100/255)*a+150 #区间变换(区间压缩,扩充区间范围)d=255*(a/255)**255 #像素平方

图像的手绘效果

from PIL import Imageimport numpy as npa=np.asarray(Image.open('13639685_123501617185_2.jpg').convert('L')).astype('float')depth=10.grad=np.gradient(a) #取图像灰度的梯度值grad_x,grad_y=grad #分别取横纵图像梯度值grad_x=grad_x*depth/100.grap_y=grad_y*depth/100.A=np.sqrt(grad_x**2+grad_y**2+1.)uni_x=grad_x/Auni_y=grad_y/Auni_z=1./Avec_el=np.pi/2.2 #光源的俯视角度,弧度值vec_az=np.pi/4#光源的方位角度,弧度值dx=np.cos(vec_el)*np.cos(vec_az) #光源对x轴的影响dy=np.cos(vec_el)*np.sin(vec_az) #光源对y轴的影响dz=np.sin(vec_el) #光源对z轴的影响b=255*(dx*uni_x+dy*uni_y+dz*uni_z) #光源归一化b=b.clip(0,255)im=Image.fromarray(b.astype('uint8')) #重构图像im.save('13639685_123501617185_2_rejpg.jpg')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。