All Projects → AntonioRedondo → Imagefeaturedetector

AntonioRedondo / Imagefeaturedetector

Licence: gpl-3.0
A C++ Qt GUI desktop program to calculate Harris, FAST, SIFT and SURF image features with OpenCV

Projects that are alternatives of or similar to Imagefeaturedetector

Augmented reality
💎 "Marker-less Augmented Reality" with OpenCV and OpenGL.
Stars: ✭ 165 (+47.32%)
Mutual labels:  opencv, feature-extraction
Python Computer Vision from Scratch
This repository explores the variety of techniques commonly used to analyze and interpret images. It also describes challenging real-world applications where vision is being successfully used, both for specialized applications such as medical imaging, and for fun, consumer-level tasks such as image editing and stitching, which students can apply…
Stars: ✭ 219 (+95.54%)
Mutual labels:  feature-extraction, image-analysis
Anms Codes
Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution
Stars: ✭ 174 (+55.36%)
Mutual labels:  opencv, qt
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (+0.89%)
Mutual labels:  opencv, qt
Cmake Templates
Some CMake Templates (examples). Qt, Boost, OpenCV, C++11, etc 一些栗子
Stars: ✭ 368 (+228.57%)
Mutual labels:  opencv, qt
Live Video Magnification
An OpenCV/Qt based realtime application for Eulerian Video Magnification / Motion Magnification. Works with multiple videos and cameras at the same time and let's you export the magnified videos.
Stars: ✭ 187 (+66.96%)
Mutual labels:  opencv, qt
Computer Vision Guide
📖 This guide is to help you understand the basics of the computerized image and develop computer vision projects with OpenCV. Includes Python, Java, JavaScript, C# and C++ examples.
Stars: ✭ 244 (+117.86%)
Mutual labels:  opencv, feature-extraction
Evision
计算机视觉实践和探索/Practice and explorations in computer vision.
Stars: ✭ 268 (+139.29%)
Mutual labels:  opencv, qt
Hplayer
A multi-screen player using Qt + FFmpeg.
Stars: ✭ 330 (+194.64%)
Mutual labels:  opencv, qt
Amazon Rekognition Video Analyzer
A working prototype for capturing frames off of a live MJPEG video stream, identifying objects in near real-time using deep learning, and triggering actions based on an objects watch list.
Stars: ✭ 309 (+175.89%)
Mutual labels:  opencv, image-analysis
Qt 5 And Opencv 4 Computer Vision Projects
Qt 5 and OpenCV 4 Computer Vision Projects, published by Packt
Stars: ✭ 72 (-35.71%)
Mutual labels:  opencv, qt
Opencv Mingw Build
👀 MinGW 32bit and 64bit version of OpenCV compiled on Windows. Including OpenCV 3.3.1, 3.4.1, 3.4.1-x64, 3.4.5, 3.4.6, 3.4.7, 3.4.8-x64, 3.4.9, 4.0.0-alpha-x64, 4.0.0-rc-x64, 4.0.1-x64, 4.1.0, 4.1.0-x64, 4.1.1-x64, 4.5.0-with-contrib
Stars: ✭ 401 (+258.04%)
Mutual labels:  opencv, qt
Graphicsprogramming
Demos related to OpenGL, Qt/QML, OpenCV and other X technologies.
Stars: ✭ 83 (-25.89%)
Mutual labels:  opencv, qt
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+1203.57%)
Mutual labels:  image-analysis
Ios Rubik Solver
An iOS app that detects a 3x3 Rubik's cube, recognizes the color of all cubies, solves it and provides a 3D visualisation of the solving process.
Stars: ✭ 111 (-0.89%)
Mutual labels:  opencv
Opencv Ndarray Conversion
NumPy ndarray ⇋ OpenCV Mat conversion, that just works.
Stars: ✭ 107 (-4.46%)
Mutual labels:  opencv
Qbs
Modern build tool for software projects
Stars: ✭ 107 (-4.46%)
Mutual labels:  qt
Expresspython
expressPython - A small Python editor for learning and competitive programming.
Stars: ✭ 111 (-0.89%)
Mutual labels:  qt
Aruco tracker
Aruco Markers for pose estimation
Stars: ✭ 111 (-0.89%)
Mutual labels:  opencv
Jpdaf tracking
A tracker based on joint probabilistic data association filtering.
Stars: ✭ 107 (-4.46%)
Mutual labels:  opencv

Image Feature Detector

Image Feature Detector (IFD) is a desktop computer program with an intuitive graphic user interface aimed to calculate and show image features and descriptors obtained with some of the most usual image feature detectors in computer vision: Harris, FAST, SIFT and SURF. It is programmed in C++ with the Qt framework. To calculate features IFD makes use of the OpenCV libraries.

This program was originally part of my end of degree project Image Features Extraction for Mobile Robots Navigation of my Telecommunications Degree, presented at the Cáceres Polytechnic School of the University of Extremadura, Spain, on February 2011.

The project memory and presentation are available for download on PDF from the doc folder. They are published under Creative Commons Attribution-Share Alike license. If you want to have a laugh and guess how terrible my English was just a few years ago these PDFs are the right material to find out.

From the beginning of the project in 2011 to 2015 the project was hosted on Google Code. In 2015 I moved it to GitHub.

The image detectors used in IFD have been the result of complex research projects. The papers which presented them to the scientific community are:

Details

The program let you choose an image stored on your computer and apply one of the four feature detectors. The obtained descriptors are overimposed in red on the image, and the number of them and the calculation time is shown on the status bar.

Pictures can be taken directly from a webcam within the program.

FAST features can be calculated in real time from the video stream of a webcam.

The input parameters for every detector can be tweaked from the Detector parameters bar.

Harris

FAST

SIFT

SURF

All four detectors can be compared at the same time with the Do4! option. A new window will pop up showing four images with a different detector applied to each picture. The parameter values of every detector are those ones set on each detector parameters bar.

The time shown only represents the time taken to calculate the features on an image which has already been prepared to be analised. That is it, it does not take into account the extra time needed to transform the images from 8U3C/8U4C (colour) to 8U1C (black and white, the detector's input requires an image on this format) and the time taken to paint the red circles showing the detected features. My guess™ is that it is a neglectable amount of time.

Compiling the project

IFD is a simple C++ project. It only has 9 cpp classes, 8 h headers and 12 ui Qt GUI files. Once you have the dependencies solved compiling the code is a matter of seconds.

To configure the project building and binary linking IFD makes use of CMake. Thanks to this IFD can be built on Linux, macOS and Windows. The screenshots shown here have been taken from a computer running Linux with KDE 5.

Resolving dependencies

IFD only makes use of two external libraries: Qt framework (v5) and OpenCV (v3). There are other direct but minor dependencies, like the compiler and the C++ Standard Library, but they are solved as long as you solve Qt and OpenCV dependencies because they (and every single C++ project) also depend on them. Once the first two libraries are fulfiled you do not have to worry about extra dependencies.

  • Installing Qt: on Linux and Debian-based distributions you do not need to compile Qt. The easiest and fastest way to install Qt is with apt-get.
  • Installing OpenCV: due to some OpenCV copyrighted code, the modules containing SIFT and SURF detectors aren't available on Debian repositories like the rest of OpenCV modules. This means you will have to compile OpenCV libraries by yourself. By and large you will need to download the main OpenCV modules plus the OpenCV contrib ones (the code containing SIFT and SURF detectors), and when you are about to compile the main OpenCV modules set the OPENCV_EXTRA_MODULES_PATH CMake variable to <opencv_contrib>/modules. Better explained on the OpenCV contrib repo.

On Unix machines, once you have these two dependencies solved, from the shell run:

cd <imagefeaturedetector_root_folder>
mkdir CMakeFiles
cd CMakeFiles
cmake ..
make

and in a minute IFD should be compiled and ready to be executed in the <imagefeaturedetector_root_folder>/bin folder. CMakeFiles is an empty folder created to store the temporary files created by CMake so that IFD root folder remains clean.

Is there any compiled version of IFD ready to use like a deb package or a Windows exe?

I have tried to build a Linux Debian deb package for x86-64 machines. But after compiling statically OpenCV libraries to include them together with the IFD binary, when building IFD and at linking time make complains time after time about endless number of missing libraries. Once all missing libraries have been added to the make -lanotherlibrary command, again a new dependency misses, thus meaning I'm probably in the middle of a deep dependency hell. Some day I will find out the right order of library inclusion and will be able to generate a deb package.

Contribute!

If you have an awesome pull request no matter whether it is a new feature or a bug fix, send it over! Your contribution to the computer vision community is priceless.

License

Image Feature Detector makes use of the GNU GPL v3.0 license. Remember to make public your project source code when reusing IFD.

Icons come from the KDE Plasma 5 Breeze theme: https://github.com/KDE/breeze-icons.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].