OpenCV - How to enable scrolling to windows with images?

17,356

Solution 1

EDIT

Short answer: you can't "enable" it, you have to implement it.

OpenCV does have trackbars -- have a look at the documentation, in particular the cvCreateTrackbar function. However, even if you use them, you still have to write the code behind it (for determining the new ROI and determining what to actually show).

If this sounds a bit too daunting, then you can wrap the displayed image using some GUI framework. Here is an example that uses OpenCV with wxWidgets. Of course, you can use any other GUI framework (for example, Qt).

Solution 2

A simple way to scroll large image is by usage of trackbar and a Rectangular for snipping.

  .
  .
  .

namedWindow("winImage",WINDOW_AUTOSIZE);
namedWindow("controlWin",WINDOW_AUTOSIZE);

int winH=300;
int winW=600;
if(winH>=largeImage.rows)winH=largeImage.rows-1;
if(winW>=largeImage.cols)winW=largeImage.cols-1;

int scrolHight=0;
int scrolWidth=0;  
cvCreateTrackbar("Hscroll", "controlWin", &scrolHight, (largeImage.rows -winH));
cvCreateTrackbar("Wscroll", "controlWin", &scrolWidth, (largeImage.cols -winW));
while(waitKey(0)!='q'){
 Mat winImage= largeImage( Rect(scrolWidth,scrolHight,winW,winH) );
 imshow("winImage",winImage);
}//while
  .
  .

Solution 3

This might help for one step: Just use CV_WINDOW_NORMAL instead of CV_WINDOW_AUTOSIZE.

cvNamedWindow(yourWindowName, CV_WINDOW_NORMAL);

cvShowImage("Original Image", original);
Share:
17,356
Rella
Author by

Rella

Hi! sorry - I am C/C++ noobe, and I am reading a book=)

Updated on July 12, 2022

Comments

  • Rella
    Rella almost 2 years

    So currently I open images created with openCV with something like

                    cvNamedWindow( "Original Image", CV_WINDOW_AUTOSIZE );
                    cvShowImage( "Original Image", original );
    

    but my images are quite large and go off the screen like shown here

    Lena

    I want windows to be resizable or at least the size of the users screen but with scrolling.

    How to do such thing?