Python+OpenCV:老照片划痕噪点修复代码大揭秘!
要实现老照片划痕和噪点的修复,可以使用Python中的OpenCV和NumPy库。以下是一个简单的代码示例,使用中值滤波和图像修复技术来减少划痕和噪点。 ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('old_photo.jpg') # 将图像转换为灰度图 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用中值滤波去除噪点 denoised = cv2.medianBlur(gray, 5) # 创建一个掩码,标记划痕区域 _, mask = cv2.threshold(denoised, 240, 255, cv2.THRESH_BINARY) # 使用图像修复技术修复划痕 repaired_image = cv2.inpaint(image, mask, inpaintRadius=3, flags=cv2.INPAINT_TELEA) # 显示修复后的图像 cv2.imshow('Repaired Image', repaired_image) cv2.waitKey(0) cv2.destroyAllWindows() # 保存修复后的图像 cv2.imwrite('repaired_photo.jpg', repaired_image) ``` 代码解释: 1. 读取图像:使用`cv2.imread`读取老照片。 2. 灰度转换:将图像转换为灰度图,便于后续处理。 3. 中值滤波:使用`cv2.medianBlur`去除图像中的噪点。 4. 创建掩码:通过阈值处理创建一个掩码,标记出划痕区域。 5. 图像修复:使用`cv2.inpaint`函数修复划痕区域。 6. 显示和保存图像:显示修复后的图像并保存。 额外需要注意的逻辑点: 1. 中值滤波的核大小:核大小会影响去噪效果,过大可能导致图像细节丢失。 2. 阈值的选择:阈值的选择会影响划痕区域的检测,需要根据具体图像调整。 3. 修复半径:`inpaintRadius`参数控制修复范围,过大可能导致修复效果不自然。 ######[AI写代码神器 | 457点数解答 | 2025-02-12 16:32:40]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)489
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)442
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)435
- OpenCV.js 轻松实现图片识别:详细步骤全解析 ( | 824点数解答 | 2024-03-22 16:22:16)204
- OpenCV.js 实战:轻松识别图片中电梯轮廓( | 1193点数解答 | 2024-03-22 16:23:32)219
- 用 C++ 和 OpenCV 生成带随机偏移的圆周上的点:代码剖析(字节豆包 | 29点数解答 | 2024-11-06 23:40:42)271
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)415
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)440
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)546
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)413
- Python代码实现:绘制洁白无瑕水晶玫瑰,附示例代码与注意事项(字节豆包 | 447点数解答 | 2025-11-02 14:37:54)87
- Python 绘制炫彩玫瑰代码实现及开发建议(字节豆包 | 777点数解答 | 2026-04-11 19:06:09)25