0

Anyone help me ,I am trying to run code to read frames from video in folder its success in building but when debugging there isn't any output * I am using Visual studio 2012 ,opencv 2.4.11 version
the code is :

    #include "stdafx.h"
    #include <opencv2/opencv.hpp>
    #include "opencv2/highgui/highgui.hpp"
    #include <iostream>

    using namespace cv;
    using namespace std;

    int _tmain(int argc, _TCHAR* argv[])
    {
    return 0; 
    }


    int main()
    {
    // Open the video file
    cv::VideoCapture capture("C:/Users/asus/Desktop/A.mp4");
    // check if video successfully opened
    if (!capture.isOpened())
    return 1;
    // Get the frame rate
    int rate= capture.get(CV_CAP_PROP_FPS);
    bool stop(false);
    cv::Mat frame; // current video frame
    cv::namedWindow("Extracted Frame");
    // Delay between each frame in ms
    // corresponds to video frame rate
    int delay= 1000/rate;
    // for all frames in video
    while (!stop) {
    // read next frame if any
   if (!capture.read(frame))
   break;
   cv::imshow("Extracted Frame",frame);
   // introduce a delay
   // or press key to stop
   if (cv::waitKey(delay)>=0)
   stop= true;
   }
 // Close the video file.
 // Not required since called by destructor
 capture.release();
 }
2
  • try with double backslash \\ for file paths Commented Apr 14, 2015 at 11:07
  • / should work just fine for paths (I use it all the time on my Visual Studio applications) unless the OP is using extended length paths. Commented Apr 14, 2015 at 13:43

1 Answer 1

1

Your main() function is never executed. The only thing, that gets executed is _tmain(), which does nothing and returns immediately.

I haven't done much Windows programming in a while, but if I remember correctly this is how it works: When Unicode is enabled for your compiler

int _tmain(int argc, _TCHAR* argv[])

gets compiled as

int wmain(int argc, wchar * argv[])

which is then used as the program entry point.

Since you seem not to be using any Windows-APIs in your code I would ignore the Microsoft specific way of doing multibyte character strings, which is non-portable, and simply use plain ASCII strings as you did in the main() function, that you intended to use.

So to solve your problem simply throw out the _tmain() function. Maybe you also need to disable Unicode in your project settings if you get linker errors.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.