OpenCVのヒストグラムの計算はNumPyより断然速い

OpenCVのヒストグラムの計算はNumPyより断然速い

本記事はQrunchからの転載です。


画像処理や集計、機械学習では何かとヒストグラムを計算するケースがありますね。

これに伴い、ヒストグラムを計算できるライブラリは色々あるかと思いますが、OpenCVでもヒストグラムを計算する機能をもっています。 NumPyでもヒストグラムの計算できるじゃない、と思いますが、実はOpenCVの方がNumPyのヒストグラムよりも断然速いです。今回はその辺りの比較もおこなっていきます。

Grabcutsで背景と猫を分離したい

Grabcutsで背景と猫を分離したい

本記事はQrunchからの転載です。


次のような画像があったとします。

ここから猫だけ抽出したいときに、ツールを使えば少し手間はかかりますが、切り取れると思います。
実はOpenCVのGrabcutsを使えば非常に簡単にそれが実現できます。 (ディープラーニング使えばできるよね?はおいておいて)

Watershedで領域検出

Watershedで領域検出

本記事はQrunchからの転載です。


Watershedと呼ばれる方法を使うと、指定したマーカーの情報と画像のエッジから画像中の領域の分割をおこなってくれます。 マーカーとしては、この位置は領域1、この位置は領域2それ以外は背景だよといった感じの情報を与えます。

Hough(ハフ)変換で直線を見つけよう

Hough(ハフ)変換で直線を見つけよう

本記事はQrunchからの転載です。


Hough変換は画像から直線をみつける方法です。

簡単な原理

入力として2値画像を考えます。 Hough変換では候補となる直線を用意し、直線上にいくつ0でないピクセルがあるかを数えます。 このピクセルの個数が指定したしきい値以上であった場合、その候補の直線は正しい直線として扱います。

Canny法でエッジ検出

Canny法でエッジ検出

本記事はQrunchからの転載です。


エッジ検出の方法として、Canny法というものがあります。 SobelフィルタやLaplacianフィルタもエッジ検出ができるわけですが、Canny法を使うとより正確に輪郭を検出することが可能です。

ヒストグラム平坦化

ヒストグラム平坦化

本記事はQrunchからの転載です。


今日はヒストグラム平坦化を扱います。

ヒストグラム平坦化はコントラストが偏っているような画像を補正します。 結果として、コントラストがある程度平坦化された結果が得られます。

Non-Local Means Denoisingでノイズ除去

Non-Local Means Denoisingでノイズ除去

本記事はQrunchからの転載です。


Non-Local Means Denoisingのアイデア

今回はノイズ除去を扱うのですが、特にガウスノイズを考えます。 これは平均が0となるノイズですので、着目しているピクセルにある意味で似ているピクセルを画像中から探してきて、それらの平均を取れば、ノイズの影響が消えたピクセルが得られるはずです。 これがNon-Local Means Denoisingのアイデアになります。