Lomography effect
In this section, we will create another image effect, a photographic effect that is commonly used in different mobile applications, such as Google Camera or Instagram.
In this section, we will discover how to use a Look up Table or LUT. We will discuss LUTs later in this chapter.
We will learn how to add an over image; in this case, a dark halo to create our desired effect.
The function that implements this effect is the callback lomoCallback
and has the following code:
void lomoCallback(int state, void* userData) { Mat result; const double exponential_e = std::exp(1.0); // Create Lookup table for color curve effect Mat lut(1, 256, CV_8UC1); for (int i=0; i<256; i++) { float x= (float)i/256.0; lut.at<uchar>(i)= cvRound( 256 * (1/(1 + pow(exponential_e, -((x-0.5)/0.1)) )) ); } // Split the image channels and apply curve transform only to red channel vector<Mat> bgr; split(img, bgr); LUT(bgr[2],...