2016-04-22 4 views
1

Я пытаюсь отделить изображение на основе их сходства. Я использую библиотеку OpenCV с C++. Я пробовал три разных метода, но все они подвержены ложным срабатываниям. Может кто-то пожалуйста, порекомендовать мне какой-нибудь другой метод, который вы нашли, чтобы быть полезнымНужна рекомендация для хорошего алгоритма соответствия подобия изображения с использованием opencv или любой другой библиотеки

метод Я попытался это: сравнение

  1. гистограммы с использованием

    compareHist(hist_image1, hist_image2, 0) 
    
  2. метода EMD, используя

    cv::EMD(sig1, sig2, CV_DIST_L2) 
    
  3. Оценка pHash, рассчитывая количество 1, а затем преобразование результата в процент.

+0

посмотрите на этой странице [] (http://dhanushkadangampola.blogspot.com .tr/2015/01/object-localization-using-color.html) может быть полезно – sturkmen

+1

Это немного зависит от того, что вы подразумеваете под «похожими». Если вы имеете в виду изображения одной и той же сцены/объекта с разных ракурсов, масштабов и т. Д., То может быть полезна структура 2d-функций в OpenCV. [Здесь] (http://docs.opencv.org/3.1.0/d9/d97/tutorial_table_of_content_features2d.html#gsc.tab=0) - некоторые полезные уроки. Я обнаружил, что функции SIFT работают очень хорошо, если производительность не слишком важна для вас. – user1337

ответ

0

Если вы хотите, чтобы сравнить разницу между двумя изображениями, пиксель в пиксель, вы можете использовать:

cv::Mat A,B;  
double errorL2 = cv::norm(A, B, CV_L2); 

 Смежные вопросы

  • Нет связанных вопросов^_^