本文将详细介绍如何使用Python进行自动保存图片的输入输出操作。
一、图像的读取与展示
1、使用Python的OpenCV库读取图像。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 展示图像 cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows()
2、使用Matplotlib库展示图像。
import matplotlib.pyplot as plt import cv2 # 读取图像 image = cv2.imread('image.jpg') # 将BGR格式转换为RGB格式 image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 展示图像 plt.imshow(image_rgb) plt.axis('off') plt.show()
二、图像的保存
1、使用OpenCV库保存图像。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 保存图像 cv2.imwrite('saved_image.jpg', image)
2、使用PIL库保存图像。
from PIL import Image # 读取图像 image = Image.open('image.jpg') # 保存图像 image.save('saved_image.jpg')
三、图像的压缩与优化
1、使用OpenCV库对图像进行压缩。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 设置压缩质量 quality = 90 # 获取图像的尺寸 width, height = image.shape[:2] # 设置新的尺寸 new_width = int(width * 0.5) new_height = int(height * 0.5) # 压缩图像 compressed_image = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_AREA) # 保存压缩后的图像 cv2.imwrite('compressed_image.jpg', compressed_image, [int(cv2.IMWRITE_JPEG_QUALITY), quality])
2、使用Pillow库对图像进行优化。
from PIL import Image # 读取图像 image = Image.open('image.jpg') # 优化图像 optimized_image = image.convert("RGB") # 保存优化后的图像 optimized_image.save('optimized_image.jpg')
四、图像的加水印
使用OpenCV库给图像添加水印。
import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg') # 创建水印 watermark = np.zeros(image.shape, dtype=np.uint8) watermark.fill(255) # 添加水印 result = cv2.addWeighted(image, 1, watermark, 0.5, 0) # 保存带水印的图像 cv2.imwrite('watermarked_image.jpg', result)
五、图像的裁剪和旋转
1、使用OpenCV库对图像进行裁剪。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 定义裁剪区域的起始坐标和终止坐标 x_start, y_start = 100, 100 x_end, y_end = 300, 300 # 裁剪图像 cropped_image = image[y_start:y_end, x_start:x_end] # 保存裁剪后的图像 cv2.imwrite('cropped_image.jpg', cropped_image)
2、使用OpenCV库对图像进行旋转。
import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg') # 定义旋转角度和旋转中心 angle = 45 center = (image.shape[1] // 2, image.shape[0] // 2) # 获取旋转矩阵 rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0) # 执行旋转操作 rotated_image = cv2.warpAffine(image, rotation_matrix, (image.shape[1], image.shape[0])) # 保存旋转后的图像 cv2.imwrite('rotated_image.jpg', rotated_image)
六、图像的滤波和边缘检测
1、使用OpenCV库对图像进行滤波。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 使用均值滤波 blurred_image = cv2.blur(image, (5, 5)) # 保存滤波后的图像 cv2.imwrite('blurred_image.jpg', blurred_image)
2、使用OpenCV库对图像进行边缘检测。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 将图像转换为灰度图像 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用Canny算法进行边缘检测 edges = cv2.Canny(gray_image, 100, 200) # 保存边缘检测后的图像 cv2.imwrite('edges_image.jpg', edges)
以上就是使用Python进行自动保存图片IO的相关操作,包括图像的读取与展示、保存、压缩与优化、加水印、裁剪和旋转、滤波和边缘检测等。希望本文能为您提供参考和帮助!
原创文章,作者:BMPC,如若转载,请注明出处:https://www.beidandianzhu.com/g/6876.html