機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【python】【OpenCV】OpenCVをインストールして画像の出力・画像の白黒化・画像の大きさ変更を試す

画像処理ライブラリであるOpenCVをインストールして、画像の出力、白黒化、画像の大きさ変更をしてみる

1. 誰に向けた記事か

pythonを勉強している人

OpenCVに興味がある初心者

OpenCVのインストール方法を知りたい人

※初心者向けにpythonの勉強法とその手順を記事にしました。

www.stjun.com

 

 

2. はじめに

OpenCVとはIntelが開発したオープンソースの画像処理ライブラリです。

OpenCVを使うことで画像の明るさを変更したり、エッジ(各物体の境界)の抽出を行ったりできます。

C言語JAVAなど様々な言語で利用することができます。

今回はpythonを使ってOpenCVを利用してみます。

 

3. インストール・簡単なコードと実行結果

3.1 インストール

今回、Anacondaをインストールしている前提で進めます。

Anacondaをまだインストールしていない人は以下過去記事の中間あたりに簡単に記載していますのでご覧ください。

www.stjun.com

まずWindowsのスタートメニューから「Anaconda Prompt」をクリックします。

f:id:stjun:20200203222323p:plain

Anaconda Promptが開いたら、次のように「pip install opencv-python」と入力します。

f:id:stjun:20200203222539p:plain

これでインストールは終了です。

試しにJupyter notebookを開いて「import cv2」と入力して実行してみて下さい。

次のようにエラーが出なければインストールは問題なくできています。

f:id:stjun:20200203222926p:plain

 

3.2 画像の表示とウインドの大きさの指定

試しに画像を任意の大きさで出力するコードを書いてみます。

import cv2
#画像の読みこみ、画像はAnacondaの作業ディレクトリに入れておく
img=cv2.imread('./test.jpg',1)
#ウインドに名前を付ける。WINODW_NORMALはウインドのサイズをマウスドラッグで変えられるようにするため
cv2.namedWindow("OpenCV_test",cv2.WINDOW_NORMAL)
#画像の大きさを500×350に変更
cv2.resizeWindow("OpenCV_test",500,350)
#画像を表示
cv2.imshow("OpenCV_test",img)
#何かキーが押されるまで画像を表示し続ける
cv2.waitKey(0)
#キーが押されたらウインド画面を消去する
cv2.destroyAllWindows()

 実行すると以下のように別ウインドが開き画像が表示されます。

元々は6000×4000の巨大な画像ですが、しっかりと500×350の大きさで表示されています。

※500×350の大きさで表示されているだけで、画像自体の大きさは6000×4000のままです。画像自体の大きさを変えたい場合は次のresizeが必要です。

f:id:stjun:20200203224235p:plain

 

3.3 画像自体の大きさと小さくする(resize)

次のようにresizeを使えば画像自体を小さくできます。今回はdsize=(500,300)で500×300の画像にしています。

#画像のリサイズ
import cv2
#画像の読みこみ
img=cv2.imread('./test.jpg',1)
#画像自体を500×300で小さくする
img_resize=cv2.resize(img,dsize=(500,300))
#画像を表示する
cv2.imshow("OpenCV_resize",img_resize)
#何かキーが押されるまで画像を表示し続ける
cv2.waitKey(0)
#キーが押されたらウインド画面を消去する
cv2.destroyAllWindows()

f:id:stjun:20200203231256p:plain

3.4 画像を白黒で読みこむ

 また次のように、2行目のimg=cv2.imread('./test.jpg',0)と第2引数を0にしてあげるとグレースケールで画像を読み込むことができます。

import cv2
#画像の読みこみ、第2引数を0にすると白黒、1だとカラー
img=cv2.imread('./test.jpg',0)
#ウインドに名前を付ける。WINODW_NORMALはウインドのサイズをマウスドラッグで変えられるようにするため
cv2.namedWindow("OpenCV_test",cv2.WINDOW_NORMAL)
#画像の大きさを500×350に変更
cv2.resizeWindow("OpenCV_test",500,350)
#画像を表示
cv2.imshow("OpenCV_test",img)
#何かキーが押されるまで画像を表示し続ける
cv2.waitKey(0)
#キーが押されたらウインド画面を消去する
cv2.destroyAllWindows()

f:id:stjun:20200203224619p:plain

 

自分が使ってるお得情報の紹介

私はAmazon kindle unlimitedというサービスを1年以上利用しています。

これは月額980円で 和書12万冊以上の電子書籍を読めるサービスです。

ビジネス本、雑誌、漫画、技術本など様々な本を読むことができます。10冊まで端末にダウンロードできるのでネット環境がなくても(オフラインでも)見れます。

なおkindle unlimitedは最初の30日間無料のため、気軽に登録してみて、あまり読みたい本が無ければすぐに解約しても問題ありません。

それか30日内に気になる本を全て読破すれば実質タダです。

ぜひ気になった方はチェックしてみて下さい。

なおkindleにない本等を買う時はamazonギフト券(amazonで使えるポイント)を買い、ポイントで数冊まとめて買った方がお得です。

ギフト券(ポイント)は買ったら10年も有効で、ポイントが付きます。さらに本をまとめ買い(2冊以上同時に)買うと、ポイントがもらえます。

https://www.amazon.co.jp/b?ie=UTF8&node=5431437051

学生さんであればkindle unlimitedよりも年2450円(月210円程度)で映画見放題、音楽聞き放題、本読み放題の「prime student」がおすすめです。

 

4.  説明

 今回、コードにコメントとして説明を書き込んだので省略します。

5.  最後に

次回はOpenCVを使って簡単な画像処理を行ってみたいと思います。