Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
OpenCV C++ Guided project tutorial -digital image processing
Rating: 4.0 out of 5(41 ratings)
218 students

OpenCV C++ Guided project tutorial -digital image processing

Image processing technique using OpenCV in C++ (Guided project)
Created byEzeuko Emmanuel
Last updated 4/2024
English
English [Auto],

What you'll learn

  • The student will learn how to open, display , manipulate and store image pixels using the OPENCV library in C++
  • The student will learn how to manipulate 2D and 3D matrix pointer array
  • The code used in this course is very flexible and openCV can easily be replaced by anyother image library in C++
  • The student will learn how to apply logic operations on images in C++ including logicAnd, logicOr, logicXor
  • The student will also be able to implement all these technique listed above without the use of openCV library or other C++ libraries
  • The student will learn how to binarize images using Otsu technique for thresholding
  • The student will be able to implement filters on images using convolution e.g sobel filter, gauss filter, prewitt filter, edge detection, etc
  • Other C++ image processing technique to learn will include contrast saturation, histogram equalization, scaling and brightening of image

Course content

1 section18 lectures3h 42m total length
  • 01. Introduction to digital Image processing4:30

    Learn digital image processing in C++ by implementing grayscale, histogram equalization, luminance, and filters like gauss and Sobel, coding all techniques from scratch with OpenCV for pixel extraction.

  • download project files here
  • 02. How to use pointers to store image pixels for both coloured and gray scale6:48

    Learn to store image pixels in OpenCV with a C++ class using 2D and 3D pointers for grayscale and color images, including get and set pixel methods.

  • 03. How to set and retrieve the pixel value at a particular location in an image15:32

    Implement a C++ image class with OpenCV. Initialize in the constructor, allocate memory for grayscale and color images, and provide get pixel and set pixel methods.

  • 04. How does pixels arranged in a matrix form an Image14:59

    Learn how images are stored as a pixel matrix with 8-bit values from 0 to 255, iterated with i and j, and processed by single or two-image operations.

  • Q&A0:58

    Engage with the course by using the Q and A to ask questions; the instructor answers any course-related inquiry, with updates across reviews, learning tools, announcements, and overviews.

  • 05. Declaring the list of image processing technique17:16

    Explore declaring and organizing image processing techniques in OpenCV C++, learn how single-image and two-image operations are mapped to functions, and how command line arguments drive the main processing loop.

  • OpenCV installation6:40

    Install OpenCV in Visual Studio 2022 by downloading and extracting the library, updating the system path, and configuring include and library directories, then link OpenCV libraries for a release build.

  • 06. How to read an image and extract pixels into a matrix using openCV12:41

    Install OpenCV and Visual Studio following the course video, read an image into a matrix, and copy pixels into your own image class by iterating rows and columns.

  • 07. How to convert to gray scale and also pixels into an image using openCV15:51

    Convert a colored image to grayscale in OpenCV using the 0.3, 0.59, and 0.11 formula and per-pixel loops, then build and display grayscale and RGB images.

  • 08. Horizontal and vertical flipping on an image16:29

    Learn to horizontally and vertically flip an image in OpenCV using C++, constructing a new image and applying pixel mapping formulas, then briefly explore rotating left and right.

  • 09. How to left rotate and right rotate an image matrix9:44

    Apply left rotate and right rotate of an image matrix in OpenCV C++ by creating a new image and swapping i and j. Compare with horizontal and vertical flips.

  • 10. How does Image thresholding and Otsu Binarization20:13

    Learn binarization by automatic thresholding using histogram analysis, comparing within-class and between-class variance to produce binary black-and-white images.

  • 11. Implementation of Otsu Binarization to Image thresholding17:48

    Compute grayscale image histogram, optimize the threshold by maximizing between-class variance (Otsu method), then binarize the image by mapping below threshold to 0 and above to 255.

  • 12, Logical operation : logical And, logical Or, logical Xor, logical Nand15:54

    Convert images to binary using binarization and thresholding, then apply logic operations—and, or, xor, nand—on zeros and 255s, merging results through addition and subtraction.

  • 13. Linear contrast saturation, scaling image, brightness,histogram equalization19:59

    Apply linear contrast and saturation using max-min pixel values, adjust brightness, scale images, and perform histogram equalization in OpenCV C++.

  • 14. How iconvolution is implemented on an image matrix using a kernel15:13

    Explore how convolution applies a kernel over an image, sliding a mask across pixels, handling overlap, and computing the weighted sum with 3x3, 5x5, and 7x7 kernels.

  • 15. convolution on filters12:09

    Implement convolution on images using 3x3 kernels, compute the center, and apply the mask to produce filtered results with 2d convolution concepts and common filters like sharpen and edge detection.

Requirements

  • Basic knowledge of C++ is required

Description

This course teaches digital image processing using the C++ language. Twenty three image processing technique from scratch without the use of any external libraries will be implemented throughout the lessons. However, C++ does not have the capacity to open and read image pixels. Therefore we use openCV in this course to open an image, read its pixel, and display a new image. This makes this course very flexible as any alternative library can be used to perform this simple task while leaving you with the bulk of the job to build from scratch.

By the end of the lesson, the student will be able to manipulate image pixels, by changing their colour intensities , forming new images from pre-existing images,  store image pixels using a 2D and 3D pointer array stored within the image class, some of the technique we will implement will include:

luminance

Convolution

linear contrast

Edge detection

Otsu binarization

image sharpening

Image thresholding

Gray Scale conversion

histogram equalization

Left rotate, Right rotate

linear contrast saturation

vertical flip, horizontal flip

Filtering ( Instagram filter)

sharpening, Laplacien convo

image addition, image subtraction

Adjusting brightness and contrast

logical And, logical Or, logical Xor, logical Nand

Scaling image (increasing and decreasing the size of an image)

Erosion, Prewitt filter, Sobel filter, Gauss filter, Robert filter, smoothening filter,

Who this course is for:

  • All levels C++ developer