0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Screen Shot 2022-01-24 at 11.54.35.png

グレースケール変換

グレースケールへの変換も可能です。

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

Screen Shot 2022-01-24 at 11.54.45.png

エッジ検出

Python
# エッジ検出
canny_img = cv2.Canny(target, 50, 110)

# 画像の表示
plt.imshow(cv2.cvtColor(canny_img, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()

Screen Shot 2022-01-24 at 11.56.49.png

サイズ変更

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

Screen Shot 2022-01-24 at 11.57.00.png

サンプルノートブック

参考資料

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?