使用pillow库,准备一张图片,对图片进行如下操作:(建议把下列操作封装成类) 1、生成缩略图,保存成1.jpg 2、旋转任意角度,保存成2.jpg 3、获取图像的轮廓,保存成3.jpg 4、增强图像的对比度为原始的30倍,保存成图片4.jpg
时间: 2024-10-25 16:03:36 浏览: 35
Pillow库是Python中用于处理图像的强大工具,可以方便地完成各种图像处理任务。我们可以创建一个名为ImageProcessor的类来封装上述操作:
```python
from PIL import Image, ImageEnhance, ImageFilter
class ImageProcessor:
def __init__(self, image_path):
self.image = Image.open(image_path)
def generate_thumb(self, thumb_name='1.jpg'):
# 缩略图生成
resized_image = self.image.thumbnail((500, 500)) # 示例缩放至500x500像素
resized_image.save(thumb_name)
def rotate(self, angle, rotated_name='2.jpg'):
# 旋转指定角度
rotated_image = self.image.rotate(angle)
rotated_image.save(rotated_name)
def get_contour(self, contour_name='3.jpg'):
# 获取图像轮廓,这通常需要额外的算法如边缘检测等,PIL本身并不直接提供此功能
# 这里假设有一个自定义函数get_contour_from_image
contour_image = self.get_contour_from_image()
contour_image.save(contour_name)
def enhance_contrast(self, contrast_factor=30, enhanced_name='4.jpg'):
# 对比度增强
enhancer = ImageEnhance.Contrast(self.image)
enhanced_image = enhancer.enhance(contrast_factor)
enhanced_image.save(enhanced_name)
# 使用示例
processor = ImageProcessor('input.jpg')
processor.generate_thumb()
processor.rotate(45)
processor.get_contour() # 自行实现get_contour_from_image函数
processor.enhance_contrast()
阅读全文