SciPy - ascent() 方法
SciPy ascent() 方法用于获取 8 位灰度衍生图像(512*512),用于演示。此方法允许用户试验图像处理技术并应用多个过滤器和变换。
语法
以下是 SciPy ascent() 方法的语法 −
ascent()
参数
此方法不接受任何参数。
返回值
此方法返回一个显示灰度图像的 2D numpy 数组。
示例 1
以下是显示预先存在的上升图像的 SciPy ascent() 方法。
import matplotlib.pyplot as plt
from scipy.misc import ascent
# 加载上升图像
image = ascent()
# 使用 matplotlib 显示图像
plt.imshow(image, cmap='gray')
plt.title('Ascent Image')
plt.axis('off')
plt.show()
输出
上述代码产生以下输出 −
示例 2
以下示例区分了原始上升图像和高斯滤波图像。
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter
from scipy.misc import ascent
# 加载上升图像
image = ascent()
# 对图像应用高斯滤波器
filtered_image = gaussian_filter(image, sigma=3)
# 显示原始图像和滤波后的图像
fig, axes = plt.subplots(1, 2, figsize=(12, 6))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].axis('off')
axes[1].imshow(filtered_image, cmap='gray')
axes[1].set_title('Gaussian Filtered Image')
axes[1].axis('off')
plt.show()
输出
上述代码产生以下输出 −
示例 3
此方法说明如何使用 sobel 滤波器对原始上升图像执行边缘检测。此过滤器分别应用于 x 轴和 y 轴,结果为边缘检测图像和原始图像。
import matplotlib.pyplot as plt
from scipy.ndimage import sobel
from scipy.misc import ascent
# 加载上升图像
image = ascent()
# 应用 Sobel 过滤器检测边缘
sobel_x = sobel(image, axis=0)
sobel_y = sobel(image, axis=1)
edges = sobel_x + sobel_y
# 显示原始图像和边缘检测图像
fig, axis = plt.subplots(1, 2, figsize=(12, 6))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].axis('off')
axes[1].imshow(edges, cmap='gray')
axes[1].set_title('Edge Detection using Sobel Filter')
axes[1].axis('off')
plt.show()
输出
上述代码产生以下输出 −

scipy_reference.html