您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch |

自学教程:Python实现图像压缩和图像处理详解

51自学网 2022-07-22 18:48:16
  python
这篇教程Python实现图像压缩和图像处理详解写得很实用,希望能帮到您。

入门了解1.颜色

如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是美术中的三原色,它们是不能再分解的基本颜色。在计算机中,我们可以将红、绿、蓝三种色光以不同的比例叠加来组合成其他的颜色,因此这三种颜色就是色光三原色。在计算机系统中,我们通常会将一个颜色表示为一个RGB值或RGBA值(其中的A表示Alpha通道,它决定了透过这个图像的像素,也就是透明度)。

名称RGB值名称RGB值
White(白)(255, 255, 255)Red(红)(255, 0, 0)
Green(绿)(0, 255, 0)Blue(蓝)(0, 0, 255)
Gray(灰)(128, 128, 128)Yellow(黄)(255, 255, 0)
Black(黑)(0, 0, 0)Purple(紫)(128, 0, 128)

入门了解 2. 像素

对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,我们通常称之为像素(pixel)。每一个图像都包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小,大家如果爱好拍照或者自拍,对像素这个词就不会陌生。

用Pillow处理图像

Pillow是由从著名的Python图像处理库PIL发展出来的一个分支,通过Pillow可以实现图像压缩和图像处理等各种操作。可以使用下面的命令来安装Pillow。

pip install pillow

Pillow中最为重要的是Image类,可以通过Image模块的open函数来读取图像并获得Image类型的对象。

1. 读取和显示图像

   from PIL import Image   # 读取图像获得Image对象   image = Image.open('guido.jpg')   # 通过Image对象的format属性获得图像的格式   print(image.format) # JPEG   # 通过Image对象的size属性获得图像的尺寸   print(image.size)   # (500, 750)   # 通过Image对象的mode属性获取图像的模式   print(image.mode)   # RGB   # 通过Image对象的show方法显示图像   image.show()

2. 剪裁图像

   # 通过Image对象的crop方法指定剪裁区域剪裁图像   image.crop((80, 20, 310, 360)).show()

3. 生成缩略图

   # 通过Image对象的thumbnail方法生成指定尺寸的缩略图   image.thumbnail((128, 128))   image.show()

4. 缩放和黏贴图像

   # 读取骆昊的照片获得Image对象   luohao_image = Image.open('luohao.png')   # 读取吉多的照片获得Image对象   guido_image = Image.open('guido.jpg')   # 从吉多的照片上剪裁出吉多的头   guido_head = guido_image.crop((80, 20, 310, 360))   width, height = guido_head.size   # 使用Image对象的resize方法修改图像的尺寸   # 使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上   luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))   luohao_image.show()

5. 旋转和翻转

   image = Image.open('guido.jpg')   # 使用Image对象的rotate方法实现图像的旋转   image.rotate(45).show()   # 使用Image对象的transpose方法实现图像翻转   # Image.FLIP_LEFT_RIGHT - 水平翻转   # Image.FLIP_TOP_BOTTOM - 垂直翻转   image.transpose(Image.FLIP_TOP_BOTTOM).show()

6. 操作像素

   for x in range(80, 310):       for y in range(20, 360):           # 通过Image对象的putpixel方法修改图像指定像素点           image.putpixel((x, y), (128, 128, 128))   image.show()

7. 滤镜效果

51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1