图像处理流水线
您的同事编写了一个用于美式手语图像的预处理函数,以提升您的机器学习模型的准确率。这个函数会接收一幅灰度图,并对其运行 Canny 边缘检测。Canny 边缘检测常用于经典计算机视觉,用于突出图像中物体的边缘。您希望将它应用到数据集中的所有图像。
同事编写的函数在您的环境中可用,名称是 compute_edges(),它接收的图像维度为 (1, h, w),其中高度 h 和宽度 w 为任意整数。
您的图像以 Dask 数组的形式存在于环境中,变量名为 image_array。该数组的形状为 (N, h, w, 3),其中 N 是图像数量,且包含红、蓝、绿 3 个通道。
dask.array 已为您导入为 da。
本练习是课程的一部分
Python 中的 Dask 并行编程
练习说明
- 通过沿最后一个维度求平均,将彩色图像转换为灰度图。
- 使用灰度图数组的
.map_blocks()方法,将compute_edges()函数应用到每一张图像。 - 仅选择第 0 张边缘图并对其执行计算。
- 使用
plt.imshow()绘制边缘图。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Convert the color photos to grayscale
grayscale_images = ____
# Apply the edge detection function
edge_images = ____.____(____)
# Select the zeroth image and compute its values
sample_image = ____
# Show the result
____(____, cmap='gray')
plt.show()