Git Product home page Git Product logo

detectororb's Introduction

DetectorORB

Windows build status

Instructions (slovenian)

ORB je detektor in deskriptor ključnih točk v sliki. Z njim poiščemo lokacije točk, njihovo velikost ter orientacijo. Hkrati pa za posamezno točko dobimo tudi vektor značilk, kateri služi za primerjavo najdenih točk med sabo. ORB je implementiran v knjižnici OpenCV in služi kot prosta alternativa detektorjem SIFT in SURF katerih uporaba je patentirana.

Za to vajo boste implementirali svoj detektor ORB točk. Kot gradivo nam bo služil opis detektorja:

ter opisi na OpenCV straneh za Fast in Brief:

Poleg implementacije si bomo pogledali tudi eno izmed pogostih aplikacij takšnega detektorja: gradnjo panoramske slike iz serije slik.

Za prvi del naloge se predvideva, da sami implementirate algoritme. Pri implementaciji si lahko pomagate z nizko nivojskimi funkcijami implementiranimi v OpenCV ali podobni knjižnici.

Za drugi del pa lahko pri implementaciji aplikacije uporabite poljubne komponente, ki so vam na voljo v OpenCV.

  • implementacija algoritma 100 točk
    • detektor FAST 40 točk
      • osnovna detekcija 10 točk
      • hitri test 10 točk
      • odstranjevanje nemaksimalnih odzivov 10 točk
      • iskanje točk različnih velikosti 10 točk
    • značilka BRIEF 40 točk
      • izračun značilke 20 točk
      • iskanje orientacije točke in rotiranje značilke 20 točk
    • ujemanje 20 točk
      • iskanje najboljših parov točk med dvema slikama 10 točk
      • prikaz najdenih parov in podrobnosti ujemanja 10 točk
  • aplikacija za gradnjo panorame 50 točk
    • prikaz ujemanja točk med dvema slikama 10 točk
    • preprosta panorama s Homografijo 10 točk
    • izbira osrednje slike za gradnjo panorame 10 točk
    • interaktivno zajemanje in sprotni prikaz poravnave 20 točk

Prerequisites

Windows

  • Install CMake. We recommend to add CMake to path for easier console using.
  • Install opencv 2.4 from sources.
    • Get OpenCV (github) and put in on C:/ (It can be installed somewhere else, but it's recommended to be close to root dir to avoid too long path error). git clone https://github.com/opencv/opencv
    • Checkout on 2.4 branch git checkout 2.4.
    • Make build directory .
    • In build directory create project with cmake or cmake-gui (enable BUILD_EXAMPLES for later test).
    • Open project in Visual Studio.
    • Build Debug and Release versions.
    • Build INSTALL project.
    • Add opencv_dir/build/bin/Release and opencv_dir/build/bin/Debug to PATH variable.
    • Test installation by running examples in opencv/build/install/ dir.

Installing

git clone https://github.com/nejcgalof/detectorORB.git

Build

You can use cmake-gui or write similar like this:

mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" -DOpenCV_DIR="C:/opencv/build" ..

Run

.\DetectorORB.exe

Parameters in that order:

  • Fast_threshold
  • nonmax_suppresion(0|1)
  • middle_image_path
  • second_image_path
  • third_image_path
  • etc...

Without image paths you build panoramas with camera. Press n for taking next image.

Results

Alt text Alt text Alt text

detectororb's People

Contributors

nejcgalof avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.