1、读取图像
需要使用图像处理库来读取图像文件,如Pillow,并将其转换为NumPy数组。
from PIL import Image
import numpy as np
image = Image.open("cjavapy.jpg")
image_array = np.array(image)
# 显示图像
plt.imshow(image_array)
plt.show()
2、保存图像
使用 NumPy 处理后的图像可以再次转换为Pillow图像
代码如下,
from PIL import Image
import numpy as np
image = Image.open("cjavapy.jpg")
image_array = np.array(image)
# image_array 是一个 NumPy 数组
# 对 image_array NumPy 数组处理后保存
# 将 NumPy 数组转换为 Pillow 图像
pillow_image = Image.fromarray(array)
# 现在可以使用 Pillow 的方法处理图像
# 保存图像
pillow_image.save('output_image.jpg')
3、转换为灰度图
可以通过将RGB值转换为灰度值来简化图像处理。
代码如下,
from PIL import Image
import numpy as np
image = Image.open("cjavapy.jpg")
image_array = np.array(image)
# 将彩色图转换为灰度图
def rgb_to_gray(rgb):
return np.dot(rgb[..., :3], [0.2989, 0.5870, 0.1140])
gray_image = rgb_to_gray(image_array)
# 显示灰度图
plt.imshow(gray_image, cmap=plt.get_cmap('gray'))
plt.show()
4、图像亮度调整
可以通过乘以一个常数来调整图像的亮度。
代码如下,
from PIL import Image
import numpy as np
image = Image.open("cjavapy.jpg")
image_array = np.array(image)
# 调整亮度(1.5表示增加50%的亮度)
brightened_image = image_array * 1.5
# 确保数值在合适的范围内
brightened_image = np.clip(brightened_image, 0, 255).astype(np.uint8)
# 显示调整后的图像
plt.imshow(brightened_image)
plt.show()
5、图像裁剪
可以通过数组切片来裁剪图像。
代码如下,
from PIL import Image
import numpy as np
image = Image.open("cjavapy.jpg")
image_array = np.array(image)
# 裁剪图像(例如裁剪坐标100,100到200,200的区域)
cropped_image = image_array[100:200, 100:200]
# 显示裁剪后的图像
plt.imshow(cropped_image)
plt.show()