Computer Vision

39 posts

[Object Recognition] SIFT Algorithm: Theory

SIFT (Scale-Invariant Feature Transform) is an algorithm for detecting and describing local image features. The algorithm searches for extrema across scale space and extracts position, scale, and rotation invariants. These keypoints remain stable under changes in illumination, affine transformation, and noise. The main steps are (1) scale-space extrema detection; (2) keypoint localization; (3) orientation assignment; and (4) keypoint description and matching.

A Detailed Guide to Camera-Based Digit Recognition with OpenCV

This article aims to recognize digits in camera images. Practical applications include license plate number recognition and recognizing printed digits on A4 paper in some competitions. Camera-based digit recognition consists of two steps: 1. Extract the ROI from the image, such as the rectangular license plate area or the A4 paper image. 2. Recognize digits in the ROI. Digit recognition is relatively straightforward, so this article first introduces its methods and principles.

Learning OpenCV 4: What Is an Image Histogram? How Do You Obtain One?

An image histogram is a statistical feature of image pixel values. It is inexpensive to compute and has many advantages, including invariance to image translation, rotation, and scaling. It is widely used across image processing, especially for grayscale image thresholding, color-based image retrieval, image classification, and backprojection tracking. Common types are grayscale histograms and color histograms.

【Learning OpenCV 4】Methods for Drawing Geometric Shapes

This article introduces methods for drawing rectangles, circles, lines, and ellipses with C++ and OpenCV 4. It focuses on the definitions of OpenCV built-in functions (such as rectangle(), circle(), line(), and ellipse()) and the role of each parameter, and provides example programs for reference. It also summarizes methods for drawing polygons, including the polygon-border drawing function polylines(), the polygon-filling function fillPoly(), the function for drawing multiple polygons drawContours(), and more.

[Learning OpenCV4] Image Channel Splitting, Merging, and Mixing Methods (C++)

After splitting image channels, the output multi-channel sequence is typically stored using std::vector mv;, where mv[0], mv[1], and mv[2] correspond to the three BGR channels respectively. However, what is displayed now is essentially three single-channel images—in other words, three grayscale images. To restore intuitive color to the three images, you need to use the channel merging method described below.