Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_OpenCV / src / core / tuto / tuto.cpp
diff --git a/WCudaMSE/BilatTools_OpenCV/src/core/tuto/tuto.cpp b/WCudaMSE/BilatTools_OpenCV/src/core/tuto/tuto.cpp
new file mode 100755 (executable)
index 0000000..537735f
--- /dev/null
@@ -0,0 +1,131 @@
+#include <iostream>\r
+\r
+#include <opencv.hpp>\r
+#include <highgui.hpp>\r
+\r
+using std::cout;\r
+using std::cerr;\r
+using std::endl;\r
+using std::string;\r
+\r
+using namespace cv;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+int tuto(string nameVideo);\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+static int work(VideoCapture* ptrVideoCapture);\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Implementation                                  *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+/**\r
+ * http://docs.opencv.org/doc/tutorials/highgui/video-input-psnr-ssim/video-input-psnr-ssim.html\r
+ */\r
+int tuto(string nameVideo)\r
+    {\r
+\r
+    try\r
+       {\r
+       //v1\r
+       //  VideoCapture cap(nameVideo);\r
+\r
+       //v2\r
+       VideoCapture cap;\r
+       cap.open(nameVideo);\r
+\r
+       if (!cap.isOpened())\r
+           {\r
+           return EXIT_FAILURE;\r
+           }\r
+\r
+       else\r
+           {\r
+           return work(&cap);\r
+           }\r
+\r
+       }\r
+    catch (cv::Exception& e)\r
+       {\r
+       const char* err_msg = e.what();\r
+\r
+       cerr << "Tuto failed" << endl;\r
+       cerr << err_msg << endl;\r
+\r
+       return EXIT_FAILURE;\r
+       }\r
+\r
+    }\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+int work(VideoCapture* ptrVideoCapture)\r
+    {\r
+    cout<<"[Tuto] : work"<<endl;\r
+\r
+    VideoCapture cap = *ptrVideoCapture;\r
+\r
+    double rate = cap.get(CV_CAP_PROP_FPS);\r
+    int delay = 1000/rate;\r
+\r
+    namedWindow("edges", 1);\r
+\r
+    Mat edges;\r
+    while (true)\r
+       {\r
+       Mat frame;\r
+       //cout << "[Tuto] cap >> frame : try" << endl; // debug\r
+       cap >> frame; // get a new frame from camera\r
+\r
+       if (frame.empty())\r
+           {\r
+           return EXIT_SUCCESS;\r
+           }\r
+       else\r
+           {\r
+           // ColorConversion\r
+               {\r
+               // http://siggiorn.com/wp-content/uploads/libraries/opencv-java/docs/sj/opencv/Constants.ColorConversion.html\r
+               //int colorConversion=CV_BGR2GRAY; // ok\r
+               //int colorConversion=CV_BGR2RGBA ; // ko\r
+               int colorConversion = CV_BGR2BGRA;              // ok\r
+               cvtColor(frame, edges, colorConversion);\r
+               }\r
+\r
+           // Effet\r
+               {\r
+               //GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);\r
+               //Canny(edges, edges, 0, 30, 3);\r
+               }\r
+\r
+           imshow("edges", edges);\r
+\r
+           if (waitKey(delay) >= 0)\r
+               {\r
+               return EXIT_SUCCESS;\r
+               }\r
+           }\r
+       }\r
+    }\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r