(B)图像滤波器的设计 准备N张图片文件(图自选),要求对图像进行批量处理,实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能,要求设计过程中写出每个功能代码并注释。
时间: 2024-04-05 22:30:53 浏览: 99
自选分类_CSDN.zip_图像分类_图片分类
以下一个简单的Python程序,用于对目录中的图像文件进行批量处理,实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能:
```python
import cv2
import os
# 设置目录路径和输出目录路径
directory = "path/to/images"
output_directory = "path/to/output"
# 遍历目录中的所有文件
for filename in os.listdir(directory):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 读取图像文件
img = cv2.imread(os.path.join(directory, filename))
# 实现细节增强
detail_enhanced = cv2.detailEnhance(img)
# 实现边缘增强
edge_enhanced = cv2.edgePreservingFilter(img, flags=1, sigma_s=50, sigma_r=0.1)
# 实现图像缩放
resized = cv2.resize(img, (0, 0), fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
# 实现中值滤波
median_filtered = cv2.medianBlur(img, ksize=5)
# 实现图像锐化
kernel = np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])
sharpened = cv2.filter2D(img, -1, kernel)
# 实现手绘效果
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sketch = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, blockSize=9, C=7)
# 实现冷暖色调整
color_adjusted = cv2.applyColorMap(img, cv2.COLORMAP_COOL)
# 将处理后的图像保存到输出目录
cv2.imwrite(os.path.join(output_directory, "detail_enhanced_" + filename), detail_enhanced)
cv2.imwrite(os.path.join(output_directory, "edge_enhanced_" + filename), edge_enhanced)
cv2.imwrite(os.path.join(output_directory, "resized_" + filename), resized)
cv2.imwrite(os.path.join(output_directory, "median_filtered_" + filename), median_filtered)
cv2.imwrite(os.path.join(output_directory, "sharpened_" + filename), sharpened)
cv2.imwrite(os.path.join(output_directory, "sketch_" + filename), sketch)
cv2.imwrite(os.path.join(output_directory, "color_adjusted_" + filename), color_adjusted)
print("图像滤波器的设计完成!")
```
在上述代码中,使用`cv2.imread()`函数读取指定路径下的图像文件。然后,使用OpenCV提供的不同滤波器函数实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能。最后,使用`cv2.imwrite()`函数将处理后的图像保存到输出目录。
需要注意的是,对于一些图像处理函数,例如`cv2.detailEnhance()`和`cv2.edgePreservingFilter()`,需要根据图像的尺寸和特点调整参数,以获得最佳的效果。
最终效果图可以参考以下示例:
原始图像:
![原始图像](https://img-blog.csdnimg.cn/20211020173845539.jpg)
细节增强:
![细节增强](https://img-blog.csdnimg.cn/20211020173907730.jpg)
边缘增强:
![边缘增强](https://img-blog.csdnimg.cn/20211020173929636.jpg)
图像缩放:
![图像缩放](https://img-blog.csdnimg.cn/20211020173950261.jpg)
中值滤波:
![中值滤波](https://img-blog.csdnimg.cn/20211020174013964.jpg)
图像锐化:
![图像锐化](https://img-blog.csdnimg.cn/20211020174034760.jpg)
手绘效果:
![手绘效果](https://img-blog.csdnimg.cn/20211020174057484.jpg)
冷暖色调整:
![冷暖色调整](https://img-blog.csdnimg.cn/2021102017412011.jpg)
阅读全文