Я недавно работаю над проектом, в котором я извлек некоторые функции, относящиеся к изображению, и хочу выяснить, есть ли сходство между двумя изображениями, использующими эти функции.
Вот список функций, которые я извлек:
Теперь я хочу передать эти значения в вектор и использовать этот вектор для нахождения косинусного сходства. Короче говоря, используйте такой вектор из двух изображений и найдите сходство между ними.
Я знаю, как работает перекрестное произведение двух векторов, но
Я хочу помочь в сохранении этих изображений в вектор и использование вектора. Любые предложения будут высоко оценены.
о, не слишком сложно
Шаг 1: заполните вашу функцию (Мат) с номерами, один за другим:
Mat feature; // you could use a std::vector, too, but cv::Mat has the
// handy dot-product used below already built in.
feature.push_back(aspect_ratio);
feature.push_back(area);
feature.push_back(center.x);
feature.push_back(center.y);
feature.push_back(more_stuff);
...
шаг 2: чтобы сравнить эти особенности, используйте косинусную норму:
Mat feature_a, feature_b; // composed like above
double ab = feature_a.dot(feature_b);
double aa = feature_a.dot(feature_a);
double bb = feature_b.dot(feature_b);
return -ab / sqrt(aa*bb);