酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Python+OpenCV:简单脚本轻松修复老照片!

要编写一个使用Python和OpenCV来修复老照片的脚本,我们可以利用图像处理技术来增强和修复老照片。以下是一个简单的脚本示例,它使用OpenCV库来调整亮度、对比度,并应用一些滤波来减少噪声。 ```python import cv2 import numpy as np def adjust_brightness_contrast(image, brightness=0, contrast=0): """ 调整图像的亮度和对比度 :param image: 输入图像 :param brightness: 亮度调整值,范围 -100 到 100 :param contrast: 对比度调整值,范围 -100 到 100 :return: 调整后的图像 """ if brightness != 0: if brightness > 0: shadow = brightness highlight = 255 else: shadow = 0 highlight = 255 + brightness alpha_b = (highlight - shadow)/255 gamma_b = shadow image = cv2.addWeighted(image, alpha_b, image, 0, gamma_b) if contrast != 0: f = 131*(contrast + 127)/(127*(131-contrast)) alpha_c = f gamma_c = 127*(1-f) image = cv2.addWeighted(image, alpha_c, image, 0, gamma_c) return image def repair_old_photo(image_path, output_path): """ 修复老照片 :param image_path: 输入图像路径 :param output_path: 输出图像路径 """ # 读取图像 image = cv2.imread(image_path) if image is None: print("无法读取图像") return # 调整亮度和对比度 image = adjust_brightness_contrast(image, brightness=30, contrast=30) # 应用高斯模糊减少噪声 image = cv2.GaussianBlur(image, (5, 5), 0) # 保存修复后的图像 cv2.imwrite(output_path, image) print(f"修复后的图像已保存到 {output_path}") # 使用示例 repair_old_photo('old_photo.jpg', 'repaired_photo.jpg') ``` 代码解释 1. adjust_brightness_contrast: 这个函数用于调整图像的亮度和对比度。通过调整这些参数,可以使老照片看起来更清晰。 2. repair_old_photo: 这个函数读取老照片,应用亮度和对比度调整,然后使用高斯模糊来减少图像中的噪声,最后保存修复后的图像。 额外需要注意的逻辑点 1. 确保输入图像路径正确,避免因路径错误导致程序无法读取图像。 2. 调整亮度和对比度时,参数的选择应根据具体图像进行调整,以达到最佳效果。 3. 高斯模糊的核大小(如(5,5))可以根据图像的分辨率和噪声程度进行调整,以达到最佳的降噪效果。 ######[AI写代码神器 | 645点数解答 | 2025-02-11 16:41:50]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]