プログラミング入門として、Pythonで任意の画像を表示するプログラムを作成します。
今回はPythonの画像処理ライブラリのOpenCVを使用します。
作業時間は15分程度です。
OpenCVではなくPILを使いたいという場合はこちらの記事で解説しています。
環境について
今回の解説は、PCにPython3、OpenCVをインストールした環境で行います。
また、Pythonの開発環境として、Visual Studio Code(VS Code)をおすすめしています。
まだインストールしていない場合は、次の記事を参考にしてください。
Windowsの場合
Pythonをまだインストールしていない方はこちらから
OpenCVをまだインストールしていない方はこちらから
VS Codeをまだインストールしていない方はこちらから
Ubuntu(Linux)の場合
学習用にLinux環境でプログラミングしたい場合はこちらの記事を参考にしてください。
UbuntuはあらかじめPythonがインストールされています。
OpenCVをまだインストールしていない方はこちらから
VS Codeをまだインストールしていない方はこちらから
Raspberry Pi OSの場合
Raspberry Pi上でプログラミングしたい場合はこちらの記事を参考にしてください。
Raspberry Pi OSはあらかじめPythonがインストールされています。
OpenCVをまだインストールしていない方はこちらから
VS Codeをまだインストールしていない方はこちらから
\未経験でも”AI”を基礎から学べる Python特化型プログラミングスクール/
表示する画像の準備
表示する画像を用意しましょう。
OpenCVで使用できる画像のファイル形式は次の通りです。
jpg, jpeg, jpe, jp2, png, webp, bmp, pbm, pgm, ppm,
pxm, pnm, sr, ras, tiff, tif, exr, hdr, pic, dib
よくわからない場合は、次のサンプル画像を使ってください。
以下のボタンからダウンロードしてください。
ダウンロードされない場合は[右クリック]⇒[名前を付けてリンク先を保存]等をお試しください。
プログラミング
プログラムを作成します。
今回のプログラムのファイル名は『OpenCV_test.py』としました。
プログラムファイルと同じ階層に用意した画像を保存してください。
『○○○.png』のようなファイル末尾の文字(拡張子)が表示されない場合はこちらを参考にしてください。
VS Codeを使う場合は、画面左側のエクスプローラに画像ファイルをドラッグアンドドロップして追加することもできます。
続いてプログラムを次のように入力してください。
import cv2
img = cv2.imread("gohan.png")
cv2.imshow("GOHAN", img)
cv2.waitKey(0)
“gohan.png”の箇所は用意した画像ファイルの名前を入力してください。
これでプログラムは完成なので実行してみましょう。
VS Codeを使っている場合は画面右上の実行ボタン▷から実行できます。
次のような画面が表示されたら成功です。
キーボードのいずれかのキーを押すと画面は閉じます。
上手くいかない場合は、プログラムをよく見直してみましょう。
importの行に次のような警告が表示された場合は、実行できません。
次の記事を参考に設定を変更してください。
\未経験でも”AI”を基礎から学べる Python特化型プログラミングスクール/
解説
プログラムの解説をします。
まずは最初の行です。
import cv2
今回、画像の表示にOpenCV(cv2)のライブラリを使用します。
ライブラリとは、プログラムの作成に便利な機能をまとめたファイルのことです。
ここでは画像ファイルを扱う準備としてOpenCV(cv2)をインポートしています。
OpenCVを使う場合は、必ずこの一行を入れるようにしましょう。
続いての行です。
img = cv2.imread("gohan.png")
ここではOpenCV(cv2)の[imread]という機能を使って、画像ファイル(ここではgohan.png)を読み込んでいます。
このようにOpenCV(cv2)の機能を使いたいときに『cv2.(使いたい機能)』のように記述します。
読み込んだ画像は[img]と名付けたデータの入れ物に保存しています。
Pythonをはじめとする多くのプログラミング言語で『 = (イコール)』は、『=』の右側のものを『=』の左側に代入する際に使用します。
続いての行です。
cv2.imshow("GOHAN", img)
ここでは画像を読み込んだ[img]を表示しています。
画像を表示するには、OpenCV(cv2)の[imshow]という機能を使います。
[imshow]は『imshow(ウィンドウの名前, 画像)』のように使用します。
今回はウィンドウの名前に”GOHAN”と入力したので、次のように表示されたはずです。
最後の行です。
cv2.waitKey(0)
[waitKey]はキーボードが押されるまで待機する機能です。
この記述をしないと、プログラムが終了してしまうので、[imshow]で表示した画像が一瞬しか表示されません。
[waitKey(0)]の( )の中には待機する時間をミリ秒単位で指定できます。
試しに『cv2.waitKey(5000)』のように変更して実行してみましょう。
画像が5000ミリ秒(5秒)表示されたあと、ウィンドウが閉じます。
[waitKey(0)]のように0を指定した場合は0秒待機するという意味ではなく、無限に待ち続けるという意味になります。
\わからないことは現役のエンジニアに無料相談してみよう/
用語
[imread]、[imshow]、[waitKey]のような機能のことを『メソッド』と呼びます。
[img]のようなデータの入れ物を『変数』と呼びます。
なにか作ってみる
次の記事では実際にPythonを使って人気バラエティ番組『相席食堂』のちょっと待てボタンを簡易的に作成・解説しています。
初心者の方には難しそうに見えるかもしれませんが、ひとつひとつの要素はとても単純です。
たった11行のプログラムを理解するだけで、下記のプログラミングスキルの基礎要素を身につけることができますので、ぜひ参考にしてみてください。
- データの入れ物『変数』の使い方
- 条件によって処理を判断させる『if文』の使い方
- 処理をまとめて呼び出す『関数』の使い方
- 画像処理で使われる『OpenCV』で画像を表示する方法
- 『playsound』で音声を再生する方法
- マウス操作に応じた処理方法
なにか作ってみる
次の記事ではPythonを使って初心者向けに画像認識AIを作成・解説しています。
「AIを学びたいけど、どの解説も理論ばかりでよくわからん」
という方に向けて、理論は最小限にまずはご自身のPCにプログラミング環境を用意し、実際にAIプログラミングを体験することで最初のステップ踏んでみようという記事です。
Tensorflowの学習済みのモデルであるInceptionV3を活用することで、初心者でも簡単にAI画像認識を体験することができます。
AI技術に興味がある方はぜひ参考にしてください。
Pythonの魅力
Pythonは世界的にも人気の高いプログラミング言語のひとつです。
汎用性が高く、データ分析やWebアプリの開発等、幅広い分野で使用されているほか、日本の市場で今後も拡大することが予想されるAI(機械学習、ディープラーニング)技術との親和性も高く、Pythonを扱えるエンジニアの需要は伸びていくことが予想されます。
そのため開発言語として採用する企業も増えています。
市場動向調査では、Pythonエンジニアの求人倍率は約53倍と非常に高く、慢性的に人材が不足している状況です。
参考: レバテック『2021年12月のITエンジニア・クリエイター正社員転職/フリーランス市場動向』
また、プログラミング言語別の年収調査ではPythonは3位と高い水準にあり、中央値で575万円、最大提示年収で1,499万円と、日本人の年収の中央値397万円を大きく上回りました。
参考: BIZREACH『プログラミング言語別年収中央値を発表、求人検索エンジン「スタンバイ」調べ』
参考: 時事ドットコム『【2022年最新】日本の「平均年収」「年収中央値」を調査』
このように、Pythonは将来性の高いプログラミング言語と言えるでしょう。
就職、転職、副業を目指す上で、身につけておきたいスキルです。
Pythonの学習難易度は他のプログラミング言語と比べると比較的低いとされています。
独学で習得することも可能ですが、近年はオンラインスクールを利用して短期間で集中して実務レベルまで習熟させるという方も増えています。
プログラミングのオンラインスクールを活用する場合は、現役のエンジニアが講師となるスクールが優位でしょう。開発現場で通用する質の高い実務ノウハウを学ぶことができます。
また、オンラインスクールであれば全国どこからでも受講できるため、わざわざ都会へ出たり交通費をかけることなく、ライフスタイルに合わせて効率的にスキルを身につけることができることが魅力です。
ITエンジニアとして働き高い収入を得るための先行投資として、オンラインスクールは一つの選択肢となり得るでしょう。
無料体験できるオンラインスクールもあるため、独学でも習得できそうか、短期集中で学んだ方がいいのか、ご自身の力量を見極めてみるのもいいのではないでしょうか。
こちらの記事ではオンラインスクールを受講する価値はあるのかについて解説しています。あわせてどうぞ
コメント