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()

输出

上述代码产生以下输出 −

scipy_ascent_method_one

示例 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()

输出

上述代码产生以下输出 −

scipy_ascent_method_two

示例 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_ascent_method_three

scipy_reference.html