用python中的skimage、matploylib和numpy库写一段对图像进行锐化、边缘检测和浮雕操作的代码
时间: 2024-09-21 19:08:13 浏览: 70
在Python中,我们可以使用scikit-image (skimage),matplotlib和numpy库来对图像进行锐化、边缘检测和浮雕操作。下面是一段简单的代码示例:
```python
import numpy as np
from skimage import filters, io, morphology
import matplotlib.pyplot as plt
# 加载图像
img = io.imread("your_image_path.jpg", as_gray=True)
# 图像锐化
sharp_img = filters.sobel(img)
plt.subplot(1, 3, 1), plt.imshow(img, cmap='gray'), plt.title('Original Image')
plt.xticks([]), plt.yticks([])
# 边缘检测(Canny)
edges = filters.canny(img)
plt.subplot(1, 3, 2), plt.imshow(edges, cmap='gray'), plt.title('Edge Detection')
plt.xticks([]), plt.yticks([])
# 浮雕效果(这里使用膨胀和腐蚀操作模拟浮雕效果)
kernel = np.ones((5, 5), np.uint8) # 创建膨胀/腐蚀结构元素
dilated = morphology.dilation(img, kernel)
eroded = morphology.erosion(img, kernel)
enhanced = dilated - eroded
plt.subplot(1, 3, 3), plt.imshow(enhanced, cmap='gray'), plt.title('Embossing Effect')
plt.xticks([]), plt.yticks([])
# 显示结果
plt.show()
阅读全文