2,596 views
この記事は最終更新から 2770日 が経過しています。
1. やりたいこと
Pythonで OpenCVを使ってみたい。
OpenCV については説明するまでもないが、CV(Computer Vision)の名の通り、画像認識などに代表される画像・映像処理関連のライブラリだ。
C++ではちょくちょく使っているが、Pythonでは使ったことがない。
画像データは2次元、3次元配列なので、配列操作を簡潔に書ける Pythonだと画像データを扱い易いはず。
2. やってみる
(0) 事前準備
ここでは anacondaでインストールした Python3 環境にインストールする。
pip等、anaconda配下のプログラムが起動するようにパスを通す。
export PATH=~/anaconda3/bin/:$PATH
(1) OpenCVをインストール
入門編なので、ソースからコンパイルではなく、パッケージとして用意されている物を使う。
# pipが入っているか? python3 -m pip -V # Case1 : なければインストール wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py rm get-pip.py # Case2 : あっても更新しておく。 pip install -U pip # OpenCVをインストール pip install opencv-python # msgpackが古いと怒られたのでインストール pip install --upgrade msgpack # ついでに PILをインストールしておく。 pip install pillow
(2) カラー画像を白黒画像に変換する。
import cv2
# 画像ファイルを読み出す。
img = cv2.imread("pic.jpg")
# 平均値を求める。
imgG = img.mean(axis=2)
# 表示
from PIL import Image
imgP = Image.fromarray(imgG) # numpy配列から変換
imgP.show()
できた!
でも…
これではファイル読み出しに OpenCVを使っているだけで宝の持ち腐れだ。
そこで、今度は OpenCVで白黒画像に変換する。
import cv2
# 画像ファイルを読み出す。
img = cv2.imread("pic.jpg")
# 白黒画像に変換する。
imgG = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 表示
from PIL import Image
imgP = Image.fromarray(imgG) # numpy配列から変換
imgP.show()
できた!
3. おまけ
(1) 画像の表示方法(cv2を使う場合)
上記のプログラム例では PILを使って表示している。
OpenCV公式サイトのプログラム例では、cv2を使って以下のように表示している。
import cv2
img = cv2.imread('image.jpg')
cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyAllWindows()
Windowのタイトルバーに任意の文字列を書けるのでこちらの方がよいか?
でも、最後に waitkey() なる一行を実行しないと表示されないのはなぜ?
詳細はこちらの公式ページを参照のこと。
Operations with images
4. 所感
とりあえず Pythonで OpenCV初体験なので、これぐらいにしておこう。
続くかな…
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2026-04-19: 0回 2026-04-18: 0回 2026-04-17: 1回 2026-04-16: 0回 2026-04-15: 0回 2026-04-14: 0回 2026-04-13: 0回