影像處理流程
你的同事寫了一個前處理函式,用於美國手語影像,以提升你的機器學習模型的準確率。這個函式會把灰階影像套用 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 張邊緣影像並計算(compute)它。
- 使用
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()