【OpenCV】”白背景に黒い線”のエッジ検出画像を作成する方法

まくまく
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。今回はopenCV canny法でエッジ検出した画像を白黒反転してみようと思います。

canny法でエッジ(輪郭)を検出すると、通常は黒い背景に白い輪郭線が表示されます。エッジの確認はこれで十分なのですが、人に見せるとなると”白い背景に黒い線”のほうが映える場合があります。

今回はcanny法でエッジ検出した画像を白黒反転して“白い背景に黒い線”を表示したいと思います。



使用するのはopenCV

使用するのは、画像処理ライブラリのopenCVです。ここではopenCVがインストールされているのを前提として書き進めていきます。

サンプルコード

import cv2
img = cv2.imread('osaka.jpeg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 150)
bitwise = cv2.bitwise_not(edges)
cv2.imwrite('osaka_bitwise.jpg', bitwise)

コメント

前回の記事、「風景写真のエッジ(輪郭)検出をしてみた」で使用したプログラムに1行加えただけです。(プログラムの詳細は前回記事を参照ください。)

5行目の「bitwise = cv2.bitwise_not(edges)」

これで白黒反転できます。

元の画像


前回使用した市役所の写真です。

canny法の出力


canny法でエッジ検出すると、通常は黒背景に白い線で輪郭が描かれます。

白黒反転


白黒反転したのがこちら。ケースによってはこちらのほうが見やすいかもしれませんね。



タイトルとURLをコピーしました