This figure explains new functionality implemented with Qt* GUI. The new GUI provides a statusbar, a toolbar, and a control panel. The control panel can have trackbars and buttonbars attached to it. If you cannot see the control panel, press Ctrl+P or right-click any Qt window and select Display properties window.
See below the example used to generate the figure:
int main(int argc, char *argv[])
int value = 50;
int value2 = 0;
cvNamedWindow("main1",CV_WINDOW_NORMAL);
cvNamedWindow("main2",CV_WINDOW_AUTOSIZE | CV_GUI_NORMAL);
cvCreateTrackbar( "track1", "main1", &value, 255, NULL);//OK tested
char* nameb1 = "button1";
char* nameb2 = "button2";
cvCreateButton(nameb1,callbackButton,nameb1,CV_CHECKBOX,1);
cvCreateButton(nameb2,callbackButton,nameb2,CV_CHECKBOX,0);
cvCreateTrackbar( "track2", NULL, &value2, 255, NULL);
cvCreateButton("button5",callbackButton1,NULL,CV_RADIOBOX,0);
cvCreateButton("button6",callbackButton2,NULL,CV_RADIOBOX,1);
cvSetMouseCallback( "main2",on_mouse,NULL );
IplImage* img1 = cvLoadImage("files/flower.jpg");
IplImage* img2 = cvCreateImage(cvGetSize(img1),8,3);
CvCapture* video = cvCaptureFromFile("files/hockey.avi");
IplImage* img3 = cvCreateImage(cvGetSize(cvQueryFrame(video)),8,3);
while(cvWaitKey(33) != 27)
{
cvAddS(img1,cvScalarAll(value),img2);
cvAddS(cvQueryFrame(video),cvScalarAll(value2),img3);
cvShowImage("main1",img2);
cvShowImage("main2",img3);
}
cvDestroyAllWindows();
cvReleaseImage(&img1);
cvReleaseImage(&img2);
cvReleaseImage(&img3);
cvReleaseCapture(&video);
return 0;
}
Changes parameters of a window dynamically.
void setWindowProperty
(const string& winname, int prop_id, double prop_value)¶
cv2.
setWindowProperty
(winname, prop_id, prop_value) → None¶
void cvSetWindowProperty
(const char* name, int prop_id, double prop_value)¶Parameters: |
|
---|
The function setWindowProperty
enables changing properties of a window.
Provides parameters of a window.
double getWindowProperty
(const string& winname, int prop_id)¶
cv2.
getWindowProperty
(winname, prop_id) → retval¶
double cvGetWindowProperty
(const char* name, int prop_id)¶Parameters: |
|
---|
See
setWindowProperty()
to know the meaning of the returned values.
The function getWindowProperty
returns properties of a window.
Creates the font to draw a text on an image.
CvFont fontQt
(const string& nameFont, int pointSize=-1, Scalar color=Scalar::all(0), int weight=CV_FONT_NORMAL, int style=CV_STYLE_NORMAL, int spacing=0)¶
CvFont cvFontQt
(const char* nameFont, int pointSize=-1, CvScalar color=cvScalarAll(0), int weight=CV_FONT_NORMAL, int style=CV_STYLE_NORMAL, int spacing=0)¶Parameters: |
|
---|
The function fontQt
creates a CvFont
object. This CvFont
is not compatible with putText
.
A basic usage of this function is the following:
CvFont font = fontQt(''Times'');
addText( img1, ``Hello World !'', Point(50,50), font);
Creates the font to draw a text on an image.
void addText
(const Mat& img, const string& text, Point org, CvFont font)¶
void cvAddText
(const CvArr* img, const char* text, CvPoint org, CvFont* arg2)¶Parameters: |
|
---|
The function addText
draws
text
on an image
img
using a specific font
font
(see example fontQt()
)
Displays a text on a window image as an overlay for a specified duration.
void displayOverlay
(const string& winname, const string& text, int delayms=0 )¶
void cvDisplayOverlay
(const char* name, const char* text, int delayms=0)¶Parameters: |
|
---|
The function displayOverlay
displays useful information/tips on top of the window for a certain amount of time delayms. The function does not modify the image, displayed in the window, that is, after the specified delay the original content of the window is restored.
Displays a text on the window statusbar during the specified period of time.
void displayStatusBar
(const string& winname, const string& text, int delayms=0 )¶
void cvDisplayStatusBar
(const char* name, const char* text, int delayms=0)¶Parameters: |
|
---|
The function displayOverlay
displays useful information/tips on top of the window for a certain amount of time
delayms
. This information is displayed on the window statusbar (the window must be created with the CV_GUI_EXPANDED
flags).
Sets a callback function to be called to draw on top of displayed image.
void setOpenGlDrawCallback
(const string& winname, OpenGlDrawCallback onOpenGlDraw, void* userdata=0 )¶
void cvSetOpenGlDrawCallback
(const char* window_name, CvOpenGlDrawCallback callback, void* userdata=NULL )¶Parameters: |
|
---|
The function setOpenGlDrawCallback
can be used to draw 3D data on the window. See the example of callback function below:
void on_opengl(void* param)
{
glLoadIdentity();
glTranslated(0.0, 0.0, -1.0);
glRotatef( 55, 1, 0, 0 );
glRotatef( 45, 0, 1, 0 );
glRotatef( 0, 0, 0, 1 );
static const int coords[6][4][3] = {
{ { +1, -1, -1 }, { -1, -1, -1 }, { -1, +1, -1 }, { +1, +1, -1 } },
{ { +1, +1, -1 }, { -1, +1, -1 }, { -1, +1, +1 }, { +1, +1, +1 } },
{ { +1, -1, +1 }, { +1, -1, -1 }, { +1, +1, -1 }, { +1, +1, +1 } },
{ { -1, -1, -1 }, { -1, -1, +1 }, { -1, +1, +1 }, { -1, +1, -1 } },
{ { +1, -1, +1 }, { -1, -1, +1 }, { -1, -1, -1 }, { +1, -1, -1 } },
{ { -1, -1, +1 }, { +1, -1, +1 }, { +1, +1, +1 }, { -1, +1, +1 } }
};
for (int i = 0; i < 6; ++i) {
glColor3ub( i*20, 100+i*10, i*42 );
glBegin(GL_QUADS);
for (int j = 0; j < 4; ++j) {
glVertex3d(0.2 * coords[i][j][0], 0.2 * coords[i][j][1], 0.2 * coords[i][j][2]);
}
glEnd();
}
}
Saves parameters of the specified window.
void saveWindowParameters
(const string& windowName)¶
void cvSaveWindowParameters
(const char* name)¶Parameters: |
|
---|
The function saveWindowParameters
saves size, location, flags, trackbars value, zoom and panning location of the window
window_name
.
Loads parameters of the specified window.
void loadWindowParameters
(const string& windowName)¶
void cvLoadWindowParameters
(const char* name)¶Parameters: |
|
---|
The function loadWindowParameters
loads size, location, flags, trackbars value, zoom and panning location of the window
window_name
.
Attaches a button to the control panel.
Parameters: |
|
---|
The function createButton
attaches a button to the control panel. Each button is added to a buttonbar to the right of the last button.
A new buttonbar is created if nothing was attached to the control panel before, or if the last element attached to the control panel was a trackbar.
See below various examples of the createButton
function call:
createButton(NULL,callbackButton);//create a push button "button 0", that will call callbackButton.
createButton("button2",callbackButton,NULL,CV_CHECKBOX,0);
createButton("button3",callbackButton,&value);
createButton("button5",callbackButton1,NULL,CV_RADIOBOX);
createButton("button6",callbackButton2,NULL,CV_PUSH_BUTTON,1);