Я делаю проект для Android, где мне нужно определить логотип (логотип может быть разного контраста, оттенка или насыщенности), для этого я использую сравнение гистограмм OpenCV-2.3.1 для Android.
Следующие шаги выполняются следующим образом:
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) Затем я обрезаю захваченное изображение каждый кадр.Размер обрезанного изображения в точности совпадает с размером сохраненного изображения и вычислением значения гистограммы с использованием того же метода, что и выше.
3) Сравнение сохраненного значения истории обоих изображений
double base_test2 = Imgproc.compareHist(hist_base1,hist_baseCamera1,Imgproc.CV_COMP_CHISQR);
Я получаю хорошее значение по сравнению.Однако проблема в том, что иногда он дает хорошие значения для некоторых случайно захваченных изображений, то есть нежелательных.
Так что теперь я планирую использовать некоторые другие методы сравнения гистограмм.Мой логотип состоит из круга.
Мой вопрос: есть ли какой-либо метод, позволяющий найти захваченное изображение, состоящее из круга точно такого же размера, как у круга сохраненного логотипа.
Или любой другой метод, который я должен использовать, или я могу играть с сохраненным значением каналов, диапазонов, histSize?
Я использовал сопоставление с шаблоном раньше, это очень медленно и довольно сложно для изображенийтого же размера
Буду признателен за любую информацию.