Подсчет итераций PHP DatePeriod ()

Ну, для этого у вас есть несколько вариантов в зависимости от того, насколько вам нужен ваш подход.

Простые решения (с допущениями):

Для этих методов I Предполагая, что ваши изображения, которые вы указали, - это то, с чем вы работаете (т. е. объекты уже сегментированы и примерно одинаковы. Также вам нужно будет скорректировать поворот (по крайней мере, грубо). например,

for(degrees = 10; degrees < 360; degrees += 10)
    coinRot = rotate(compareCoin, degrees)
    // you could also try Cosine Similarity, or even matchedTemplate here.
    metric = SAD(coinRot, targetCoin) 
    if(metric > bestMetric)
        bestMetric = metric
        coinRotation = degrees

    , например,
for(degrees = 10; degrees < 360; degrees += 10)
    coinRot = rotate(compareCoin, degrees)
    // you could also try Cosine Similarity, or even matchedTemplate here.
    metric = SAD(coinRot, targetCoin) 
    if(metric > bestMetric)
        bestMetric = metric
        coinRotation = degrees

    ]
  • Сумма абсолютных различий (SAD) : это позволит вам быстро сравнивать изображения, как только вы определили приблизительный угол поворота.
  • Косинус сходства : это работает немного по-другому, обрабатывая изображение как 1D-вектор, а затем вычисляет высотный угол между двумя векторами. Чем лучше совпадение, тем меньше угол будет.

Комплексные решения (возможно, более надежные):

Эти решения будут более сложными для реализации, но, вероятно, будут давать более надежные классификации.


  • Haussdorf Distance : Этот ответ даст вам введение об использовании этого метода. Это решение, вероятно, также нуждается в коррекции вращения для правильной работы.
  • Преобразование Фурье-Меллина : Этот метод является расширением фазовой корреляции, которое может извлекать вращение, масштаб и трансляции (RST) между двумя изображениями.
  • Обнаружение и извлечение функций : этот метод включает обнаружение «надежных» (т. е. масштабных и / или инвариантных по отношению к вращению) функций в изображении и сравнивая их с набором целевых функций с помощью RANSAC, LMedS или простых наименьших квадратов. OpenCV имеет пару образцов, используя эту технику в matcher_simple.cpp и matching_to_many_images.cpp . ПРИМЕЧАНИЕ. С помощью этого метода вы, вероятно, не захотите бинаризовать изображение, поэтому есть более доступные функции обнаружения.

16
задан Mark Amery 8 October 2017 в 20:33
поделиться