• Stars
    star
    151
  • Rank 246,057 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenCV Fourier-Mellin algorithm implementation.

LogPolarFFTTemplateMatcher

This project is an opencv implementation of rotation and scale invariant Log-Polar FFT template matcher.

Dependencies:

  • opencv mandatory.
  • gtest if you want build test.

Appended canny preprocessing, results become more robust. You can change its parameters in LogPolarFFTTemplateMatch method.

Usage example:

#include "fftm.hpp"
using namespace std;
using namespace cv;
//-----------------------------------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------------------------------
int main(int argc, unsigned int** argv)
{
    Mat im0 = imread("cat.png", 1);
    Mat im1 = imread("cat_part.png", 1);

    imshow("im1", im1);
    imshow("im0", im0);

    // As input we need equal sized images, with the same aspect ratio,
    // scale difference should not exceed 1.8 times.

    RotatedRect rr = LogPolarFFTTemplateMatch(im0, im1,200,100);

    // Plot rotated rectangle, to check result correctness
    Point2f rect_points[4];
    rr.points(rect_points);
    for (int j = 0; j < 4; j++)
    {
        line(im0, rect_points[j], rect_points[(j + 1) % 4], Scalar(255, 0, 0), 2, CV_AA);
    }

    imshow("result", im0);

    waitKey();
}

Program will show result as below:

Result

References

(1) An FFT-based technique for translation, rotation and scale-invariant image registration. BS Reddy, BN Chatterji. IEEE Transactions on Image Processing, 5, 1266-1271, 1996

(2) An IDL/ENVI implementation of the FFT-based algorithm for automatic image registration. H Xiea, N Hicksa, GR Kellera, H Huangb, V Kreinovich. Computers & Geosciences, 29, 1045-1055, 2003.

(3) Image Registration Using Adaptive Polar Transform. R Matungka, YF Zheng, RL Ewing. IEEE Transactions on Image Processing, 18(10), 2009.

Based on python version of algorithm: http://www.lfd.uci.edu/~gohlke/code/imreg.py.html

More Repositories

1

Multitarget-tracker

Multiple Object Tracker, Based on Hungarian algorithm + Kalman filter.
C++
2,006
star
2

Deep-learning-object-detection-links.

Object detectors based on DL (from: https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html )
231
star
3

TILT-Cpp-port

"TILT: Transform Invariant Low-rank Textures" CPP port.
C++
17
star
4

ellipseDetector

OpenCV ellipse detector.
C++
17
star
5

RotatedRectLib

Small library for working with rotated rectangle shaped image regions.
C++
15
star
6

nano_smpl

C
13
star
7

openvino_pedestrian_tracker

Standalone openvino pedestrian tracking demo project,
C++
11
star
8

nano_bfm

Basel morphable face model mesh and texture generator using GPU.
C
10
star
9

SelfCalibration

SelfCalibration using single image.
C++
9
star
10

PRNet_PyTorch_v2

Fixed version of https://github.com/tomguluson92/PRNet_PyTorch
Python
9
star
11

kaldi_vosk_win_cmake

cmake based kaldi + vosk + microphone speech recognition example
C++
7
star
12

Caffemodel-Parser

Tool for parse caffemodel files, and dump them to binary files.
Protocol Buffer
6
star
13

imgui_canvas

2d 3d plotting application temp;ate
C++
6
star
14

image-size-scanner

Scans image files and extracts image sizes, no image decoding, no dependencies.
C++
6
star
15

imgui_opencv_template

template project for imgui and opencv
C
6
star
16

mixtures_of_trees_FaceDetector_openCV

OpenCV port for mixtures of trees face detector. From site: http://www.ics.uci.edu/~xzhu/face/
C++
5
star
17

imgui_image_viewer

imgui image list
C
5
star
18

SpatialSubspaceRotation

Visual heart rate measure using Spatial Subspace Rotation (2SR) method. Inspired by https://github.com/partofthestars/Spatial-Subspace-Rotation
C++
5
star
19

dashedLineCompiler

Dashed line/polyline compiler, it provides ability to plot dashed lines to any plotting framework which can draw solid lines.
C++
5
star
20

AIML_editor

AIML bot code edidtor/debugger
HTML
4
star
21

SMPLpp

C
4
star
22

aiml_cpp

AIML interpreter C++ implementation with utf-8 support.
C++
3
star
23

TrackerGenerator

Tracker generator tool to configure and generate trackers from a set of components.
C
3
star
24

ImGUI_colorer

ImGui editor with syntax highlighing based on colorer project.
C
3
star
25

SuiteSparse

C
3
star
26

SparseAutoencoder

Разреженный автоэнкодер (visual studio)
MATLAB
3
star
27

optic_cad

Just a simple tandem of Easy3d and goptical libraries.
C++
3
star
28

FontToPNG

Generates PNG images for font glyphs,
C
3
star
29

PiecewiseAffineWarper

Fast OpenCv implementation of piecewise affine warper
C++
2
star
30

gabor_segmentation

C++
2
star
31

TrackerGeneratorProto

Prototype model project for TrackerGenerator project
C++
2
star
32

ImGuiColorTextEdit_rus

ImGuiColorTextEdit with russian support
C++
2
star
33

ScrollingBuffer

Simple scrolling buffer I used for multimodal time series applications.
C++
2
star
34

ImIDE

A chunk of code from my project, to fast start ide like projects.
C
2
star
35

tor_tools

tool for working with tor network (tested on visual studio 2019)
C
2
star
36

FaceRotate

Piecewise affine transform example.
2
star
37

Cmake-Dark-Edition

Cmake with dark theme.
C
2
star
38

slam2d_c_port

Минимальная реализация EKF SLAM 2D
C++
2
star
39

glut_cmake_template

Minimal glut CMake project, all dependencies are fetched from internet.
C++
2
star
40

cvGDI

C++
1
star
41

pytorch.nms

python 3.7, vs2019 version
Cuda
1
star
42

NavarroHumanEyeModel

Optical model of human eye.
C++
1
star
43

CaffeGui

Node Editor for CAFFE.
C++
1
star
44

Dots-RL-AI-gym

C++
1
star
45

GitStarsToMarkDown

Git stars list to single markdown file tool
Python
1
star
46

MATLABtoEigenCheatsheet

MATLAB to Eigen cheatsheet
1
star
47

slogi

Разбивка слов на слоги. (Конечный автомат)
C++
1
star
48

ShowcaseViewNext

Espian's Showcase View adopted to new api (java and kotlin versions included).
Java
1
star
49

NormalsComputerClass

Simaple per-face and per-vertex normals computing class for triangle mesh.
C++
1
star
50

HeadControl

C++
1
star
51

adaptagrams_win_cmake_java

Clone of adaptagrams project, tuned for Visual Studio + swig 4.0.1 for java binding. Build using CMake. Tested for java 17.
C++
1
star
52

copperspice_basic_app

CMake
1
star
53

XYPlot

C++
1
star
54

IIR_Filter_Design

Мои эксперименты с БИХ фильтрами. И библиотекой Iir1.
C++
1
star
55

navec_cpp

Word embedding model, based on navec project.
C
1
star
56

numerals

Функции работы с русскими числительными
C++
1
star
57

ConvNN

GPU accelerated simple convolutional network trainer/classifier.
XML
1
star
58

Optix7TemplateProject

Template Cmake based
C++
1
star
59

evevtBasedStdAppStarter

Starter project for event based multithreaded application. Based on eventpp library, no boost needed. Included spdlog.
C++
1
star