
まくまく
プラグラミング言語「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法でエッジ検出すると、通常は黒背景に白い線で輪郭が描かれます。
白黒反転
白黒反転したのがこちら。ケースによってはこちらのほうが見やすいかもしれませんね。