March 2019
Intermediate to advanced
538 pages
13h 38m
English
We usually start preprocessing by thresholding the image. This eliminates all color information. Most OpenCV functions consider information to be written in white, and the background to be black. So, let's start by creating a threshold function to match this criteria:
#include opencv2/opencv.hpp; #include vector; using namespace std; using namespace cv; Mat binarize(Mat input) { //Uses otsu to threshold the input image Mat binaryImage; cvtColor(input, input, COLOR_BGR2GRAY); threshold(input, binaryImage, 0, 255, THRESH_OTSU); //Count the number of black and white pixels int white = countNonZero(binaryImage); int black = binaryImage.size().area() - white; //If the image is mostly white (white background), invert it return ...