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()