使用Python的skimage做图像的锐化边缘检测浮雕处理,输出四张图片包含原图,锐化后图像,边缘检测图像,浮雕图像
时间: 2024-09-22 11:09:15 浏览: 107
Python图形图像处理实战集锦
在Python中,我们可以使用`skimage`库来进行图像处理,包括锐化边缘检测和浮雕效果。以下是一个简单的示例,展示了如何对一张图像进行这些操作:
首先,确保已经安装了`skimage`库(如果还没有,可以使用`pip install scikit-image`命令安装)。
```python
from skimage import io, filters, feature, exposure
import matplotlib.pyplot as plt
# 读取图像
img = io.imread('input_image.jpg')
# 1. 锐化(增强细节)
sharp_img = filters.sobel(img)
# 2. 边缘检测(Canny算子)
edges_img = feature.canny(sharp_img, sigma=1.0)
# 3. 浮雕效果(基于Laplacian算子)
embossed_img = exposure.adjust_laplacian(img, gamma=1.5)
# 显示原始图像,锐化后的图像,边缘检测图像和浮雕图像
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8))
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title('Original Image')
axs[0, 1].imshow(sharp_img, cmap='gray')
axs[0, 1].set_title('Sharpened Image')
axs[1, 0].imshow(edges_img, cmap='gray', vmin=0, vmax=255)
axs[1, 0].set_title('Edge Detection')
axs[1, 1].imshow(embossed_img, cmap='gray')
axs[1, 1].set_title('Embossed Image')
for ax in axs.flat:
ax.set(xticks=[], yticks=[])
plt.tight_layout()
plt.show()
# 保存图片
io.imsave('sharp_image.jpg', sharp_img)
io.imsave('edges_image.jpg', edges_img)
io.imsave('embossed_image.jpg', embossed_img)
```
在这个例子中,我们首先使用Sobel算子对图像进行锐化,然后用Canny算子进行边缘检测。接着,我们使用Laplacian算子和gamma校正创建浮雕效果。最后,我们将这些处理过的图像显示出来,并分别保存为单独的文件。
阅读全文