BETA

OpenCV生活18日目 ブラックハットで明るい領域の検出

投稿日:2020-07-24
最終更新:2020-07-23

前日に扱ったトップハットは明るい局所的領域を検出することができましたが、その逆で局所的に暗い領域を検出する方法としてブラックハットがあります。
ブラックハットはクロージングの操作をした画像から元画像を引くことで実現できます。

クロージングを扱った記事がありますので、よろしければ参考ください。
OpenCV生活15日目 膨張と収縮の組み合わせによるopeningとclosing

ブラックハットの原理

ブラックハットはクロージングの操作をした画像から元画像を引きます。
クロージングは周辺よりも暗くなっている領域が明るい画素で置き換えられますから、そこから元画像を引くことで、明るくなった部分が残った画像が得られるということです。

OpenCVでブラックハット

ブラックハットを次の画像に適用することを考えます。

ブラックハットは次で実現されます。

kernel = np.ones((11, 11),np.uint8)  
dilation = cv2.dilate(img, kernel, iterations=1)  
closing = cv2.erode(dilation, kernel, iterations=1)  
blackhat = closing - img  

クロージング適用後         black hat適用後

周辺よりも暗くなっている口の部分や、過の複雑な部分が検出されていますね。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@opqrstuvcutの技術とか技術以外のブログ 最近フリーランスになりました

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう