プラズマ工学レビューvol.17(Google colabのPythonによるプラズマの画像解析)

久しぶりのプラズマ工学の投稿です。

卒業生に言われたプラズマ工学レビューのありがたさ。私が苦労した部分を少しでも緩和できればと思って作成しております

プラズマ工学も電子回路をいじったり、、、がメインととらわれがちですが、時にはプログラムを使って解析することも必要です。以前紹介した電磁界解析を行った際に、google colabでPythonのコードを実行しました。

プラズマ工学レビューvol.16(PythonによるFDTD法の電磁界シミュレーション)

最近は画像解析もOpenCVにより非常に充実しており、プラズマに関してもプラズマの発光特性や熱特性の評価する際に活用することが可能です。今回は以下のプラズマの輝度測定を実施してみました。

このプラズマ画像(plasma1.jpg)をアップロードしました。結論から言うと、写真のプラズマ該当部のみを抽出しているのがわかると思います。

そして、画像解析を以下のコードを以下のようにGoogle colabを使って実行していきます。

コードは以下の通りです。途中のインテンドがずれているのも実行時には必要不可欠です。

import cv2
import numpy as np
import matplotlib.pyplot as plt

# プラズマ画像の読み込み
img = cv2.imread("plasma1.jpg")

# グレースケールに変換
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# しきい値処理によるプラズマ領域の抽出
ret, thresh = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)

# 輪郭の検出
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# プラズマ領域の輝度値の平均を算出
total_brightness = 0
num_pixels = 0
for contour in contours:
   x, y, w, h = cv2.boundingRect(contour)
   total_brightness += np.sum(gray[y:y+h, x:x+w])
   num_pixels += w * h
mean_brightness = total_brightness / num_pixels

# 結果の表示
print("平均輝度値:", mean_brightness)

# グラフの描画
hist = cv2.calcHist([gray], [0], None, [256], [0,256])
plt.plot(hist)
plt.axvline(mean_brightness, color='r')
plt.show()

プラズマの発光特性を評価するために、プラズマの画像から輝度値を抽出し、それをグラフ化しております。具体的には、画像をグレースケールに変換し、しきい値処理によってプラズマ領域を抽出し、その領域の平均輝度値を算出しています。もちろん、しきい値処理によっては色々な分野に応用できる技術であり、画像がたくさんあればそれも一気に処理することも可能です。興味があれば、皆さんも是非活用してみてください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)