Databricks上でもOpenCVを活用して画像処理を行うことができます。ただ、ノートブック上に画像を表示する際には注意が必要です。
準備
opencv-python
をクラスターライブラリとしてインストールしてください。
ノートブック上での画像処理
cv2ライブラリを読み込んで処理を行うことができます。ただ、こちらで説明されているようにノートブック上で処理された画像を表示する際には注意が必要です。
Python
import matplotlib.pyplot as plt
import cv2
import numpy as np
画像の表示にはmatplotlibを使用しますが、その際にGBR→RGBに並び替えが必要となります。
Python
target = cv2.imread('/dbfs/databricks-datasets/cctvVideos/train_images/label=0/LeftBagframe0004.jpg', cv2.IMREAD_UNCHANGED)
# 画像の表示
plt.imshow(cv2.cvtColor(target, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()
グレースケール変換
グレースケールへの変換も可能です。
Python
# imreadの第二引数でグレースケールを指定
gry = cv2.imread('/dbfs/databricks-datasets/cctvVideos/train_images/label=0/LeftBagframe0004.jpg', cv2.IMREAD_GRAYSCALE)
#imshow(gry)
cv2.imwrite('/tmp/gray.jpg', gry)
# 画像の表示
plt.imshow(cv2.cvtColor(gry, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()
エッジ検出
Python
# エッジ検出
canny_img = cv2.Canny(target, 50, 110)
# 画像の表示
plt.imshow(cv2.cvtColor(canny_img, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()
サイズ変更
Python
# 画像の高さ幅を指定
width,height = 60, 60
# 画像をリサイズ
resized_img = cv2.resize(target, (width, height))
# 画像の表示
plt.imshow(cv2.cvtColor(resized_img, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()
サンプルノートブック
参考資料
- Python Image Processing on Azure Databricks - Part 1, OpenCV Image Compare – Stochastic Coder
- Pythonを用いた画像処理(openCV,skimage) - Qiita
- OpenCVを用いて、Jupyter Notebook上で画像を表示させたい(mac) - Qiita