Search on the blog

2014年4月20日日曜日

OpenCV日記(6)形態演算子

 形態演算子のtutorial[1, 2]を読んだ。

概要
 形態演算子(morphology operator)とは、画像を"ある形"に基づいて処理するような演算子の集合のこと。"ある形"とは四角形や楕円などで、その形をカーネルのように考えていろいろな処理を行う。

 OpenCVでは、以下の7つの処理を行うことが出来る。
形態演算子 概要
Erosion 明るい領域を"侵食"する処理。
ピクセルの輝度をカーネルで定義された領域内の最低輝度で置き換える。
Dilation 明るい領域を"拡大"する処理。
ピクセルの輝度をカーネルで定義された領域内の最高輝度で置き換える。
Opening ErosionのあとにDilationを行う。
小さな物体(暗い背景の中の明るい物体)を除去できる。
Closing DilationのあとにErosionを行う。
小さな物体(明るい背景の中の暗い物体)を除去できる。
Morphological Gradient Dilation処理をした画像からErosion処理をした画像を引く。
物体の境界を検出できる。
Top Hat 元の画像からOpening処理をした画像を引く。
Black Hat Closing処理をした画像から元の画像を引く。

実行結果
まず元ネタ。

Erosion処理をした結果。白い領域が侵食されて黒文字が太字になった。

Dilation処理をした結果。白い領域が広がって、黒文字が細字になった。


Opening処理をした結果。黒に囲われた白い領域が潰れた。


Closing処理をした結果。白い背景の中の黒い部分が潰れた。小さい黒の塊から潰れていった。



Morphological Gradient処理をした結果。文字の外枠部分を検出できた。


参考URL
[1] Eroding and Dilating
[2] More Morphology Transformations

0 件のコメント:

コメントを投稿