123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * npr_demo.cpp
- *
- * Author:
- * Siddharth Kherada <siddharthkherada27[at]gmail[dot]com>
- *
- * This tutorial demonstrates how to use OpenCV Non-Photorealistic Rendering Module.
- * 1) Edge Preserve Smoothing
- * -> Using Normalized convolution Filter
- * -> Using Recursive Filter
- * 2) Detail Enhancement
- * 3) Pencil sketch/Color Pencil Drawing
- * 4) Stylization
- *
- */
- #include <signal.h>
- #include "opencv2/photo.hpp"
- #include "opencv2/imgproc.hpp"
- #include "opencv2/imgcodecs.hpp"
- #include "opencv2/highgui.hpp"
- #include "opencv2/core.hpp"
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- using namespace cv;
- int main(int argc, char* argv[])
- {
- cv::CommandLineParser parser(argc, argv, "{help h||show help message}{@image|lena.jpg|input image}");
- if (parser.has("help"))
- {
- parser.printMessage();
- return 0;
- }
- string filename = samples::findFile(parser.get<string>("@image"));
- Mat I = imread(filename);
- int num,type;
- if(I.empty())
- {
- cout << "Image not found" << endl;
- return 1;
- }
- cout << endl;
- cout << " Edge Preserve Filter" << endl;
- cout << "----------------------" << endl;
- cout << "Options: " << endl;
- cout << endl;
- cout << "1) Edge Preserve Smoothing" << endl;
- cout << " -> Using Normalized convolution Filter" << endl;
- cout << " -> Using Recursive Filter" << endl;
- cout << "2) Detail Enhancement" << endl;
- cout << "3) Pencil sketch/Color Pencil Drawing" << endl;
- cout << "4) Stylization" << endl;
- cout << endl;
- cout << "Press number 1-4 to choose from above techniques: ";
- cin >> num;
- Mat img;
- if(num == 1)
- {
- cout << endl;
- cout << "Press 1 for Normalized Convolution Filter and 2 for Recursive Filter: ";
- cin >> type;
- edgePreservingFilter(I,img,type);
- imshow("Edge Preserve Smoothing",img);
- }
- else if(num == 2)
- {
- detailEnhance(I,img);
- imshow("Detail Enhanced",img);
- }
- else if(num == 3)
- {
- Mat img1;
- pencilSketch(I,img1, img, 10 , 0.1f, 0.03f);
- imshow("Pencil Sketch",img1);
- imshow("Color Pencil Sketch",img);
- }
- else if(num == 4)
- {
- stylization(I,img);
- imshow("Stylization",img);
- }
- waitKey(0);
- }
|