### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV Tutorials »
- OpenCV Viz »

# Launching Viz

## Goal

In this tutorial you will learn how to

- Open a visualization window.
- Access a window by its name.
- Start event loop.
- Start event loop for a given amount of time.

## Code

You can download the code from `here`.

    #include <opencv2/viz.hpp>
    #include <iostream>

    using namespace cv;
    using namespace std;

    /**
    * @function main
    */
    int main()
    {
        /// Create a window
        viz::Viz3d myWindow("Viz Demo");

        /// Start event loop
        myWindow.spin();

        /// Event loop is over when pressed q, Q, e, E
        cout << "First event loop is over" << endl;

        /// Access window via its name
        viz::Viz3d sameWindow = viz::getWindowByName("Viz Demo");

        /// Start event loop
        sameWindow.spin();

        /// Event loop is over when pressed q, Q, e, E
        cout << "Second event loop is over" << endl;

        /// Event loop is over when pressed q, Q, e, E
        /// Start event loop once for 1 millisecond
        sameWindow.spinOnce(1, true);
        while(!sameWindow.wasStopped())
        {
            /// Interact with window

            /// Event loop for 1 millisecond
            sameWindow.spinOnce(1, true);
        }

        /// Once more event loop is stopped
        cout << "Last event loop is over" << endl;
        return 0;
    }

## Explanation

Here is the general structure of the program:

- Create a window.

    /// Create a window
    viz::Viz3d myWindow("Viz Demo");

- Start event loop. This event loop will run until user terminates it by pressing e, E, q, Q.

    /// Start event loop
    myWindow.spin();

- Access same window via its name. Since windows are implicitly shared, sameWindow is exactly the same with myWindow. If the name does not exist, a new window is created.

    /// Access window via its name
    viz::Viz3d sameWindow = viz::get("Viz Demo");

- Start a controlled event loop. Once it starts, wasStopped is set to false. Inside the while loop, in each iteration, spinOnce is called to prevent event loop from completely stopping. Inside the while loop, user can execute other statements including those which interact with the window.

    /// Event loop is over when pressed q, Q, e, E
    /// Start event loop once for 1 millisecond
    sameWindow.spinOnce(1, true);
    while(!sameWindow.wasStopped())
    {
        /// Interact with window

        /// Event loop for 1 millisecond
        sameWindow.spinOnce(1, true);
    }

## Results

Here is the result of the program.

## Help and Feedback

You did not find what you were looking for?

- Ask a question on the Q&A forum.
- If you think something is missing or wrong in the documentation, please file a bug report.

### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV Tutorials »
- OpenCV Viz »