In this tutorial, you will learn how to perform image stitching using Python, OpenCV, and the cv2.createStitcher and cv2.Stitcher_create functions. Using today’s code you’ll be able to stitch multiple images together, creating a panorama of stitched images. Just under two years ago I published two guides on image stitching and panorama construction: Fundamentals of image […]
Archive | Image Descriptors
Real-time panorama and image stitching with OpenCV
One of my favorite parts of running the PyImageSearch blog is a being able to link together previous blog posts and create a solution to a particular problem — in this case, real-time panorama and image stitching with Python and OpenCV. Over the past month and a half, we’ve learned how to increase the FPS […]
OpenCV panorama stitching
In today’s blog post, I’ll demonstrate how to perform image stitching and panorama construction using Python and OpenCV. Given two images, we’ll “stitch” them together to create a simple panorama, as seen in the example above. To construct our image panorama, we’ll utilize computer vision and image processing techniques such as: keypoint detection and local invariant […]
Local Binary Patterns with Python & OpenCV
Well. I’ll just come right out and say it. Today is my 27th birthday. As a kid I was always super excited about my birthday. It was another year closer to being able to drive a car. Go to R rated movies. Or buy alcohol. But now as an adult, I don’t care too much for my […]
HOG detectMultiScale parameters explained
Last week we discussed how to use OpenCV and Python to perform pedestrian detection. To accomplish this, we leveraged the built-in HOG + Linear SVM detector that OpenCV ships with, allowing us to detect people in images. However, one aspect of the HOG person detector we did not discuss in detail is the detectMultiScale function; specifically, […]
Implementing RootSIFT in Python and OpenCV
Still using the original, plain ole’ implementation of SIFT by David Lowe? Well, according to Arandjelovic and Zisserman in their 2012 paper, Three things everyone should know to improve object retrieval, you’re selling yourself (and your accuracy) short by using the original implementation. Instead, you should be utilizing a simple extension to SIFT, called RootSIFT, that can […]
Zero-parameter, automatic Canny edge detection with Python and OpenCV
Today I’ve got a little trick for you, straight out of the PyImageSearch vault. This trick is really awesome — and in many cases, it completely alleviates the need to tune the parameters to your Canny edge detectors. But before we get into that, let’s discuss the Canny edge detector a bit. Looking for the source code […]
OpenCV Shape Descriptor: Hu Moments Example
So what type of shape descriptors does OpenCV provide? The most notable are Hu Moments which are can be used to describe, characterize, and quantify the shape of an object in an image. Hu Moments are normally extracted from the silhouette or outline of an object in an image. By describing the silhouette or outline […]
How-To: 3 Ways to Compare Histograms using OpenCV and Python
So you’ve extracted color histograms from a set of images… But how are you going to compare them for similarity? You’ll need a distance function to handle that. But which one? How you choose? And how do you compare histograms using Python and OpenCV? Don’t worry, I’ve got you covered. In this blog post I’ll […]
Charizard Explains How To Describe and Quantify an Image Using Feature Vectors
If you haven’t noticed, the term “feature vector” is used quite often in this blog. And while we’ve seen it a lot, I wanted to dedicate an entire post to defining what exactly a feature vector is. What is an Image Feature Vector? Image Feature Vector: An abstraction of an image used to characterize and […]