Python OpenCV3で画像のエッジを抽出する


 

前提

OpenCV3のインストールからの続きの前提で。

 

OpenCV3をインストールした仮想環境に入る。
またsourceディレクトリを作成し、sourceディレクトリ内にimageディレクトリを作成する。

$ cd ~/Documents/opencv_python/
$ source ./bin/activate
(opencv_python)$ mkdir source
(opencv_python)$ cd source
(opencv_python)$ mkdir image

imageディレクトリ内に画像を設置しておく。
今回は以下の画像(slack_botter.png)を使う。

slack_botter

sourceディレクトリにedge.pyファイルを作成する。

# -*- coding: utf-8 -*-

import cv2

if __name__ == '__main__':

    # 画像の読み込み
    gray = cv2.imread("./image/slack_botter.png", 0)
    # エッジの抽出
    edge = cv2.Canny(gray, 100, 200)

    # 表示
    cv2.imshow("Show Image", edge)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

edge.pyを実行する。

(opencv_python)$ cd ~/Documents/opencv_python/source
(opencv_python)$ python edge.py

すると以下のような画像が表示される。
元画像のSlackerの部分やjinja2のの背景の部分など、薄い部分は取り切れていない。

スクリーンショット 2015-06-19 23.04.40

    edge = cv2.Canny(gray, 100, 200)

の値を

    edge = cv2.Canny(gray, 0, 200)

のようにしきい値を調整することで取得されるエッジが変わる。

スクリーンショット 2015-06-19 23.07.55

 

Follow me!

コメントを残す

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