SlideShare a Scribd company logo
Similar image search
           with OpenCV




      Jernej Virag / @jernejv
How does it work?


●   Preprocess images

●   Find interesting parts of images ( features)

●   Find matching features of input image in feature
    database
Preprocessing images


●   Grayscale conversion

●   Bluring

●   Histogram equalization
Feature extraction
●   Hessian feature detector
●   FAST
●   Laplacian of Gaussian
●   etc.

●   Better algorithms
    ●   SIFT (patented)
    ●   SURF (patented)
Feature matching


●   Fast lookup of nearest vectors

●   We'll use FLANN
OpenCV
●   Great:
    ●   Tons of pre-implemented algorithms
    ●   REALLY fast
    ●   Hardware acceleration support

●   Less great:
    ●   Annoying compilation
    ●   Broken packages
    ●   Unstable API
    ●   Large
OpenCV
●   Should compile your own!

●   Add TBB and libeigen for performance

●   Don't forget python headers!

●   Use “cmake-gui” to check results of pre-compile
    configuration
CODE TIME!
?

@jernejv / mavrik@kiberpipa.org
?

@jernejv / mavrik@kiberpipa.org

More Related Content

What's hot

Testing Tools course training institute hyderabad
Testing Tools course training institute hyderabadTesting Tools course training institute hyderabad
Testing Tools course training institute hyderabad
Jaya Suresh Nunna
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHP
Giuseppe Morelli
 
Introduction to Scala for Java Developers
Introduction to Scala for Java DevelopersIntroduction to Scala for Java Developers
Introduction to Scala for Java Developers
Solix JJ
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive ProgrammingZhentian Wan
 
Perl Continous Integration
Perl Continous IntegrationPerl Continous Integration
Perl Continous Integration
Michael Peters
 
GraphQL (Graphene-Django)
GraphQL (Graphene-Django)GraphQL (Graphene-Django)
GraphQL (Graphene-Django)
Selo Lee
 
Gitalist Talk LPW2009
Gitalist Talk LPW2009Gitalist Talk LPW2009
Gitalist Talk LPW2009
Zachary Stevens
 
How to add Fixtures into your Django app with Mixer
How to add Fixtures into your Django app with MixerHow to add Fixtures into your Django app with Mixer
How to add Fixtures into your Django app with Mixer
Guinsly Mondesir
 
CI / CD with Nomad
CI / CD with NomadCI / CD with Nomad
CI / CD with Nomad
Lior Bachar
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL app
React Conf Brasil
 
Go/gRPCはじめました
Go/gRPCはじめましたGo/gRPCはじめました
Go/gRPCはじめました
Yuto Matsukubo
 
Sprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdfSprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdf
Christian Zellot
 
J-Spring 2018 - Angular for Java developers
J-Spring 2018 - Angular for Java developersJ-Spring 2018 - Angular for Java developers
J-Spring 2018 - Angular for Java developers
Bert Jan Schrijver
 
OpenValue meetup July 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developersOpenValue meetup July 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developers
Bert Jan Schrijver
 
Code Nomads meetup June 2018 - Angular for Java developers
Code Nomads meetup June 2018 - Angular for Java developersCode Nomads meetup June 2018 - Angular for Java developers
Code Nomads meetup June 2018 - Angular for Java developers
Bert Jan Schrijver
 
The Rise of Functional Programming
The Rise of Functional ProgrammingThe Rise of Functional Programming
The Rise of Functional Programming
Tjerk Wolterink
 
Fun Ruby
Fun Ruby Fun Ruby
Fun Ruby
Guilherme Carlos
 

What's hot (18)

Testing Tools course training institute hyderabad
Testing Tools course training institute hyderabadTesting Tools course training institute hyderabad
Testing Tools course training institute hyderabad
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHP
 
Introduction to Scala for Java Developers
Introduction to Scala for Java DevelopersIntroduction to Scala for Java Developers
Introduction to Scala for Java Developers
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
Perl Continous Integration
Perl Continous IntegrationPerl Continous Integration
Perl Continous Integration
 
I ❤ CPAN
I ❤ CPANI ❤ CPAN
I ❤ CPAN
 
GraphQL (Graphene-Django)
GraphQL (Graphene-Django)GraphQL (Graphene-Django)
GraphQL (Graphene-Django)
 
Gitalist Talk LPW2009
Gitalist Talk LPW2009Gitalist Talk LPW2009
Gitalist Talk LPW2009
 
How to add Fixtures into your Django app with Mixer
How to add Fixtures into your Django app with MixerHow to add Fixtures into your Django app with Mixer
How to add Fixtures into your Django app with Mixer
 
CI / CD with Nomad
CI / CD with NomadCI / CD with Nomad
CI / CD with Nomad
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL app
 
Go/gRPCはじめました
Go/gRPCはじめましたGo/gRPCはじめました
Go/gRPCはじめました
 
Sprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdfSprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdf
 
J-Spring 2018 - Angular for Java developers
J-Spring 2018 - Angular for Java developersJ-Spring 2018 - Angular for Java developers
J-Spring 2018 - Angular for Java developers
 
OpenValue meetup July 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developersOpenValue meetup July 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developers
 
Code Nomads meetup June 2018 - Angular for Java developers
Code Nomads meetup June 2018 - Angular for Java developersCode Nomads meetup June 2018 - Angular for Java developers
Code Nomads meetup June 2018 - Angular for Java developers
 
The Rise of Functional Programming
The Rise of Functional ProgrammingThe Rise of Functional Programming
The Rise of Functional Programming
 
Fun Ruby
Fun Ruby Fun Ruby
Fun Ruby
 

Similar to Python simillar image search

Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)OpenBlend society
 
Pycvf
PycvfPycvf
Pycvf
tranx
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
Rowan Merewood
 
Agile Apps with App Engine
Agile Apps with App EngineAgile Apps with App Engine
Agile Apps with App Engine
Calvin Cheng
 
Erlang - Dive Right In
Erlang - Dive Right InErlang - Dive Right In
Erlang - Dive Right In
vorn
 
Everything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native ImageEverything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native Image
Alina Yurenko
 
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
ScyllaDB
 
Erlang: TL;DR
Erlang: TL;DRErlang: TL;DR
Erlang: TL;DR
vorn
 
Rubyslava + PyVo #48
Rubyslava + PyVo #48Rubyslava + PyVo #48
Rubyslava + PyVo #48
Jozef Képesi
 
Migration Spring PetClinic to Quarkus
Migration Spring PetClinic to QuarkusMigration Spring PetClinic to Quarkus
Migration Spring PetClinic to Quarkus
Jonathan Vila
 
Open Source Monitoring in 2019
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019
Kris Buytaert
 
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Jonathan Vila
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Python
Abhay Bhargav
 
Python to go
Python to goPython to go
Python to goWeng Wei
 
meetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypesmeetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypes
Max Małecki
 
Active record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with ArelActive record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with Arel
Alex Tironati
 
BinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopBinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopJason Trost
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
Yoshiki Shibukawa
 
Webcomponents are your frameworks best friend
Webcomponents are your frameworks best friendWebcomponents are your frameworks best friend
Webcomponents are your frameworks best friend
Filip Bruun Bech-Larsen
 

Similar to Python simillar image search (20)

Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
 
Pycvf
PycvfPycvf
Pycvf
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Agile Apps with App Engine
Agile Apps with App EngineAgile Apps with App Engine
Agile Apps with App Engine
 
Erlang - Dive Right In
Erlang - Dive Right InErlang - Dive Right In
Erlang - Dive Right In
 
Everything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native ImageEverything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native Image
 
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
Scylla Summit 2022: Learning Rust the Hard Way for a Production Kafka+ScyllaD...
 
Erlang: TL;DR
Erlang: TL;DRErlang: TL;DR
Erlang: TL;DR
 
Rubyslava + PyVo #48
Rubyslava + PyVo #48Rubyslava + PyVo #48
Rubyslava + PyVo #48
 
Migration Spring PetClinic to Quarkus
Migration Spring PetClinic to QuarkusMigration Spring PetClinic to Quarkus
Migration Spring PetClinic to Quarkus
 
Open Source Monitoring in 2019
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019
 
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Python
 
Zero mq logs
Zero mq logsZero mq logs
Zero mq logs
 
Python to go
Python to goPython to go
Python to go
 
meetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypesmeetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypes
 
Active record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with ArelActive record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with Arel
 
BinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in HadoopBinaryPig - Scalable Malware Analytics in Hadoop
BinaryPig - Scalable Malware Analytics in Hadoop
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
 
Webcomponents are your frameworks best friend
Webcomponents are your frameworks best friendWebcomponents are your frameworks best friend
Webcomponents are your frameworks best friend
 

More from Jernej Virag

PSPDFKit on Android
PSPDFKit on AndroidPSPDFKit on Android
PSPDFKit on Android
Jernej Virag
 
Solr
SolrSolr
BeanstalkD Queues in Django
BeanstalkD Queues in DjangoBeanstalkD Queues in Django
BeanstalkD Queues in Django
Jernej Virag
 
Odprti video formati
Odprti video formatiOdprti video formati
Odprti video formati
Jernej Virag
 
Android services
Android servicesAndroid services
Android services
Jernej Virag
 
Hitre aplikacije
Hitre aplikacijeHitre aplikacije
Hitre aplikacije
Jernej Virag
 
From Doom to Crysis
From Doom to CrysisFrom Doom to Crysis
From Doom to CrysisJernej Virag
 
The Task Model
The Task ModelThe Task Model
The Task Model
Jernej Virag
 
Game design - formal and dramatic elements
Game design - formal and dramatic elementsGame design - formal and dramatic elements
Game design - formal and dramatic elements
Jernej Virag
 
Java stereams
Java stereamsJava stereams
Java stereams
Jernej Virag
 
Pretty good privacy
Pretty good privacyPretty good privacy
Pretty good privacy
Jernej Virag
 
Jni – java native interface
Jni – java native interfaceJni – java native interface
Jni – java native interface
Jernej Virag
 
Gaming industry in 2010
Gaming industry in 2010Gaming industry in 2010
Gaming industry in 2010
Jernej Virag
 

More from Jernej Virag (16)

PSPDFKit on Android
PSPDFKit on AndroidPSPDFKit on Android
PSPDFKit on Android
 
Solr
SolrSolr
Solr
 
BeanstalkD Queues in Django
BeanstalkD Queues in DjangoBeanstalkD Queues in Django
BeanstalkD Queues in Django
 
Odprti video formati
Odprti video formatiOdprti video formati
Odprti video formati
 
Android services
Android servicesAndroid services
Android services
 
Hitre aplikacije
Hitre aplikacijeHitre aplikacije
Hitre aplikacije
 
From Doom to Crysis
From Doom to CrysisFrom Doom to Crysis
From Doom to Crysis
 
Security
SecuritySecurity
Security
 
Ip security
Ip securityIp security
Ip security
 
Encryption
EncryptionEncryption
Encryption
 
The Task Model
The Task ModelThe Task Model
The Task Model
 
Game design - formal and dramatic elements
Game design - formal and dramatic elementsGame design - formal and dramatic elements
Game design - formal and dramatic elements
 
Java stereams
Java stereamsJava stereams
Java stereams
 
Pretty good privacy
Pretty good privacyPretty good privacy
Pretty good privacy
 
Jni – java native interface
Jni – java native interfaceJni – java native interface
Jni – java native interface
 
Gaming industry in 2010
Gaming industry in 2010Gaming industry in 2010
Gaming industry in 2010
 

Python simillar image search