2016-09-14 44 views
1

私は画像用の一般的なテキスト解析アルゴリズムを構築しています。 私は走っていた:opencv MSER.detectRegions()とfindContours():違いは何ですか?

MSER.detectRegions() 

バイナリイメージに

findContours(...cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 

対。結果は同じです。 私はMSERがグレースケールで実行できることを知っていますが、私はより安全に行きたいと思っていました。

これらのうちの1つを選択する必要があります。findContours()は、実行時間の半分以下の時間を要します。MSER

何か不足していますか? あなたは何を選びますか?

+4

バイナリイメージで最大限安定した領域を計算するのは意味がありません。 – Miki

+0

なぜですか? 2つの外殻の間に1つのピクセルの接続性がある場合、どうしてですか? – ndor

答えて

2

既に指摘したように、バイナリイメージでMSERを計算するのは意味がありません。 MSERは、基本的に画像のグレースケールを複数回(スレッショルドを増やして)スレッショルドします。これはいわゆるhereのようなコンポーネントツリーです。少なくとも2つの異なる2値化でサイズ/形状を変える接続された構成要素は、いわゆる最大限の極端な領域(例えば、スケマティックグラフィックのK)である。もちろんこれは非常に簡単な説明です。詳細についてはGoogleにお尋ねください。十分に見つかるでしょう。

ご覧のとおり、既にしきい値設定されている画像をしきい値処理することは意味がありません。グレースケール画像をMSERアルゴリズムに渡してください。 MSERは、最先端のテキスト検出手法(hereおよびhereを参照)の共通基盤です。

関連する問題