Category Archives: OpenCV

C++ code for reading MNIST dataset

Here’s a code for reading MNIST dataset in C++, the dataset can be found HERE, and the file format is as well. Using this code, you can read MNIST dataset into a double vector, or an OpenCV Mat, or Armadillo mat. Feel free to use it for any purpose. (part of this code is stolen from […]

Also posted in Machine Learning | Tagged , , , , | 5 Responses

A Simple QR Code Scanner [part 1]

QR Code is kind of matrix barcode, it is recently very popular because of its fast read speed and big storage capacity, we can see it everywhere, Jeky even wanted to tattoo one on his body. A QR code makes up by  black square dots and white square grid, black dots arrange in white background, […]

Also posted in Algorithm | Tagged , , , , | 9 Responses


SURF (Speeded Up Robust Features), is a feature detector, we talked about SIFT before, and SURF is sort of derivative of SIFT. SURF is based on sums of 2D Haar wavelet responses and makes an efficient use of integral images. I’ll not represent the whole story of SURF, because its idea is very similar to SIFT, so […]

Also posted in Algorithm | Tagged , , , | Leave a comment


I’m working on a project which is something like Bundler with my team, our aim is using different images of an object (we only have images, and know nothing about the positions these images took or parameters of cameras), to re-construct the 3-D module of the object. In this project, I used RANSAC on calculating homographies […]

Also posted in Algorithm | Tagged , , , | 4 Responses

Poisson Blending

Poisson blending is one of the topics that spent me days trying to understand recently (not fully understand yet), it is a wonderful method, and using wonderful maths, as well. Now I’ll try to explain this method, with as less Math formulae as I can.

Also posted in Algorithm | Tagged , , , | 17 Responses


SIFT (Scale-invariant feature transform) is one of popular feature matching algorithms, it is good because of its several attributes. There are kinds of primitive ways to do image matching, for some images, even compare the gray scale value pixel by pixel works well. However, what if features in images are in different scales? What if features are […]

Also posted in Algorithm | Tagged , , , | 2 Responses

Bilateral Filtering

Popular Filters When smoothing or blurring images (the most popular goal of smoothing is to reduce noise), we can use diverse linear filters, because linear filters are easy to achieve, and are kind of fast, the most used ones are Homogeneous filter, Gaussian filter, Median filter, et al.

Also posted in Algorithm | Tagged , , , | 1 Response

Image Pyramids

There are a lot of advantages of using image pyramids in digital image processing, and this article is about image pyramids. WHY PYRAMIDS? We all know about the two popular kinds of domain: Spatial Domain and Frequency Domain.      

Also posted in Algorithm | Tagged , , | 10 Responses

Seam Carving

In last week Computational Photography class, Rob showed us a video about seam carving, which is really awesome, like magic. During my last bachelor year, I published a paper with my group named “Semantic aware sport image resizing jointly using seam carving and warping”, I worked for the sport image field detection part. So when […]

Also posted in Algorithm, Dynamic Programming | Tagged , | 4 Responses

Continuously Adaptive Mean SHIFT

In the Motion Capture course lecture this week, teachers talked about camShift algorithm, I heard about this algorithm since about three or four years before, but I never tried it, and during that class I thought I must do it this time. CamShift is a tracking algorithm, which is based on MeanShift algorithm, what camShift […]

Also posted in Algorithm | Tagged , , | 18 Responses