私はロゴを検出する必要があるアンドロイドプロジェクトを行っています(ロゴは異なるコントラスト、色相または彩度のものがあります)。これは、アンドロイド用のOpenCV-2.3.1のヒストグラム比較を使用しています。画像ロゴの比較
以下の手順は次のとおりです。
1)記憶された画像
private List<Integer> histSize;
private List<Float> ranges;
histSize.add(50);
histSize.add(60);
histSize.add(10);
ranges.add(0f);
ranges.add(256f);
ranges.add(0f);
ranges.add(180f);
ranges.add(0f);
ranges.add(256f);
channels.add(0);
channels.add(1);
channels.add(2);
hsv_base1=new Mat();
Imgproc.cvtColor(image1,hsv_base1, Imgproc.COLOR_BGR2HSV);
hsv_base.add(hsv_base1);
Imgproc.calcHist(hsv_base, channels,new Mat(), hist_base, histSize, ranges,false);
2のHIST値を計算) そしてiが毎フレーム撮影した画像をトリミングしています。トリミングされた画像のサイズは、格納された画像のサイズと全く同じであり、上記と同じ方法を使用してヒストグラム値を計算します。
3) 両画像
double base_test2 = Imgproc.compareHist(hist_base1,hist_baseCamera1,Imgproc.CV_COMP_CHISQR);
の格納されたHIST値とを比較Iはcomparehistの良い値を取得します。しかしながら、問題はいつかは、あるランダムな捕捉画像に対して良好な値を与える、すなわち望ましくないことがある。
だから、ヒストグラムを比較して他の方法を使う予定です。私のロゴは丸で構成されています。
私の質問は次のとおりです。キャプチャされた画像が、保存されたロゴのサークルと正確に同じサイズの円で構成されていることがわかります。
他の方法を使用する必要がありますか、またはチャンネル、範囲、histSizeの値を保存して再生できますか?私は前にテンプレートマッチングを使用していた
、その非常に遅く、私はこの上の任意の光をいただければと思います
同じ大きさの画像のためにかなり難しいです。
セグメンテーションはopenCvでセグメンテーションを実装したことはありませんが、これを試してみます。 – user1249358