OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
Qt 新功能

详细描述

图像

此图解释了使用Qt* GUI实现的新功能。新的GUI提供状态栏、工具栏和控制面板。控制面板可以附加轨迹条和按钮栏。如果看不到控制面板,请按Ctrl+P或右键单击任何Qt窗口并选择显示属性窗口

请参见下面用于生成该图的示例

int main(int argc, char *argv[])
{
int value = 50;
int value2 = 0;
namedWindow("main1",WINDOW_NORMAL);
namedWindow("main2",WINDOW_AUTOSIZE | WINDOW_GUI_NORMAL);
createTrackbar( "track1", "main1", &value, 255, NULL);
String nameb1 = "button1";
String nameb2 = "button2";
createButton(nameb1,callbackButton,&nameb1,QT_CHECKBOX,1);
createButton(nameb2,callbackButton,NULL,QT_CHECKBOX,0);
createTrackbar( "track2", NULL, &value2, 255, NULL);
createButton("button5",callbackButton1,NULL,QT_RADIOBOX,0);
createButton("button6",callbackButton2,NULL,QT_RADIOBOX,1);
setMouseCallback( "main2",on_mouse,NULL );
Mat img1 = imread("files/flower.jpg");
VideoCapture video;
video.open("files/hockey.avi");
Mat img2,img3;
while( waitKey(33) != 27 )
{
img1.convertTo(img2,-1,1,value);
video >> img3;
imshow("main1",img2);
imshow("main2",img3);
}
destroyAllWindows();
return 0;
}
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3

结构体  cv::QtFont
 QtFont 仅适用于 Qt。参见 cv::fontQt更多…
 

枚举

枚举  cv::QtButtonTypes {
  cv::QT_PUSH_BUTTON = 0 ,
  cv::QT_CHECKBOX = 1 ,
  cv::QT_RADIOBOX = 2 ,
  cv::QT_NEW_BUTTONBAR = 1024
}
 Qt “按钮”类型。更多…
 
枚举  cv::QtFontStyles {
  cv::QT_STYLE_NORMAL = 0 ,
  cv::QT_STYLE_ITALIC = 1 ,
  cv::QT_STYLE_OBLIQUE = 2
}
 Qt 字体样式。更多…
 
枚举  cv::QtFontWeights {
  cv::QT_FONT_LIGHT = 25 ,
  cv::QT_FONT_NORMAL = 50 ,
  cv::QT_FONT_DEMIBOLD = 63 ,
  cv::QT_FONT_BOLD = 75 ,
  cv::QT_FONT_BLACK = 87
}
 Qt 字体粗细。更多…
 

函数

void cv::addText (const Mat &img, const String &text, Point org, const QtFont &font)
 在图像上绘制文本。
 
void cv::addText (const Mat &img, const String &text, Point org, const String &nameFont, int pointSize=-1, Scalar color=Scalar::all(0), int weight=QT_FONT_NORMAL, int style=QT_STYLE_NORMAL, int spacing=0)
 在图像上绘制文本。
 
int cv::createButton (const String &bar_name, ButtonCallback on_change, void *userdata=0, int type=QT_PUSH_BUTTON, bool initial_button_state=false)
 将按钮附加到控制面板。
 
void cv::displayOverlay (const String &winname, const String &text, int delayms=0)
 在窗口图像上显示文本作为叠加层,持续指定时间。
 
void cv::displayStatusBar (const String &winname, const String &text, int delayms=0)
 在指定时间段内在窗口状态栏上显示文本。
 
QtFont cv::fontQt (const String &nameFont, int pointSize=-1, Scalar color=Scalar::all(0), int weight=QT_FONT_NORMAL, int style=QT_STYLE_NORMAL, int spacing=0)
 创建字体以在图像上绘制文本。
 
void cv::loadWindowParameters (const String &windowName)
 加载指定窗口的参数。
 
void cv::saveWindowParameters (const String &windowName)
 保存指定窗口的参数。
 
int cv::startLoop (int(*pt2Func)(int argc, char *argv[]), int argc, char *argv[])
 
void cv::stopLoop ()
 

枚举类型文档

◆ QtButtonTypes

#include <opencv2/highgui.hpp>

Qt “按钮”类型。

枚举器
QT_PUSH_BUTTON 
Python: cv.QT_PUSH_BUTTON

推按钮。

QT_CHECKBOX 
Python: cv.QT_CHECKBOX

复选框按钮。

QT_RADIOBOX 
Python: cv.QT_RADIOBOX

单选按钮。

QT_NEW_BUTTONBAR 
Python: cv.QT_NEW_BUTTONBAR

按钮应创建一个新的按钮栏。

◆ QtFontStyles

#include <opencv2/highgui.hpp>

Qt字体样式。

枚举器
QT_STYLE_NORMAL 
Python: cv.QT_STYLE_NORMAL

普通字体。

QT_STYLE_ITALIC 
Python: cv.QT_STYLE_ITALIC

斜体字体。

QT_STYLE_OBLIQUE 
Python: cv.QT_STYLE_OBLIQUE

倾斜字体。

◆ QtFontWeights

#include <opencv2/highgui.hpp>

Qt字体粗细。

枚举器
QT_FONT_LIGHT 
Python: cv.QT_FONT_LIGHT

粗细值为25。

QT_FONT_NORMAL 
Python: cv.QT_FONT_NORMAL

粗细值为50。

QT_FONT_DEMIBOLD 
Python: cv.QT_FONT_DEMIBOLD

粗细值为63。

QT_FONT_BOLD 
Python: cv.QT_FONT_BOLD

粗细值为75。

QT_FONT_BLACK 
Python: cv.QT_FONT_BLACK

粗细值为87。

函数文档

◆ addText() [1/2]

void cv::addText ( const Mat & img,
const String & text,
Point org,
const QtFont & font )
Python
cv.addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) ->

#include <opencv2/highgui.hpp>

在图像上绘制文本。

该函数addText使用指定的字体font在图像img上绘制text(参见示例cv::fontQt)。

参数
img8位3通道图像,文本将绘制在此图像上。
text要写入图像的文本。
orgPoint(x,y) 文本在图像上的起始位置。
font用于绘制文本的字体。

◆ addText() [2/2]

void cv::addText ( const Mat & img,
const String & text,
Point org,
const String & nameFont,
int pointSize = -1,
Scalar color = Scalar::all(0),
int weight = QT_FONT_NORMAL,
int style = QT_STYLE_NORMAL,
int spacing = 0 )
Python
cv.addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) ->

#include <opencv2/highgui.hpp>

在图像上绘制文本。

参数
img8位3通道图像,文本将绘制在此图像上。
text要写入图像的文本。
orgPoint(x,y) 文本在图像上的起始位置。
nameFont字体名称。名称应与系统字体名称匹配(例如Times*)。如果找不到字体,则使用默认字体。
pointSize字号。如果未指定、等于零或为负值,则字号将设置为系统相关的默认值。通常为12磅。
color字体的BGRA颜色,其中A = 255表示完全透明。
weight字体粗细。可用的操作标志为:cv::QtFontWeights 您也可以指定一个正整数以获得更好的控制。
style字体样式。可用的操作标志为:cv::QtFontStyles
spacing字符间距。可以为负值或正值。

◆ createButton()

int cv::createButton ( const String & bar_name,
ButtonCallback on_change,
void * userdata = 0,
int type = QT_PUSH_BUTTON,
bool initial_button_state = false )

#include <opencv2/highgui.hpp>

将按钮附加到控制面板。

该函数createButton将按钮附加到控制面板。每个按钮都添加到最后一个按钮右侧的按钮栏中。如果之前没有附加任何内容到控制面板,或者如果附加到控制面板的最后一个元素是轨迹条,或者如果QT_NEW_BUTTONBAR标志添加到type中,则会创建一个新的按钮栏。

请参见下面cv::createButton 函数调用的各种示例:

createButton("",callbackButton);//创建一个推按钮“button 0”,它将调用callbackButton。
createButton("button2",callbackButton,NULL,QT_CHECKBOX,0);
createButton("button3",callbackButton,&value);
createButton("button5",callbackButton1,NULL,QT_RADIOBOX);
createButton("button6",callbackButton2,NULL,QT_PUSH_BUTTON,1);
createButton("button6",callbackButton2,NULL,QT_PUSH_BUTTON|QT_NEW_BUTTONBAR);// 在新行中创建一个按钮
int createButton(const String &bar_name, ButtonCallback on_change, void *userdata=0, int type=QT_PUSH_BUTTON, bool initial_button_state=false)
将按钮附加到控制面板。
@ QT_CHECKBOX
复选框按钮。
定义 highgui.hpp:215
@ QT_RADIOBOX
单选按钮。
定义 highgui.hpp:216
@ QT_PUSH_BUTTON
推按钮。
定义 highgui.hpp:214
@ QT_NEW_BUTTONBAR
按钮应创建一个新的按钮栏。
定义 highgui.hpp:217
参数
bar_name按钮名称。
on_change指向每次按钮状态改变时要调用的函数的指针。此函数应声明为 void Foo(int state,*void); 。state 为按钮的当前状态。对于推按钮,它可以是 -1;对于复选框/单选按钮,它可以是 0 或 1。
userdata传递给回调函数的指针。
type可选的按钮类型。可用类型为:(cv::QtButtonTypes)
initial_button_state按钮的默认状态。用于复选框和单选按钮。其值可以是 0 或 1。(可选

◆ displayOverlay()

void cv::displayOverlay ( const String & winname,
const String & text,
int delayms = 0 )
Python
cv.displayOverlay(winname, text[, delayms]) ->

#include <opencv2/highgui.hpp>

在窗口图像上显示文本作为叠加层,持续指定时间。

displayOverlay 函数在窗口顶部显示有用的信息/提示,持续时间为 delayms。此函数不会修改窗口中显示的图像,也就是说,在指定的延迟之后,窗口的原始内容将被恢复。

参数
winname窗口名称。
text要在窗口图像上写入的叠加文本。
delayms显示叠加文本的持续时间(以毫秒为单位)。如果在之前的叠加文本超时之前调用此函数,则计时器将重新启动,并且文本将更新。如果此值为零,则文本将永远不会消失。

◆ displayStatusBar()

void cv::displayStatusBar ( const String & winname,
const String & text,
int delayms = 0 )
Python
cv.displayStatusBar(winname, text[, delayms]) ->

#include <opencv2/highgui.hpp>

在指定时间段内在窗口状态栏上显示文本。

displayStatusBar 函数在窗口顶部显示有用的信息/提示,持续时间为 delayms。此信息显示在窗口状态栏上(窗口必须使用 CV_GUI_EXPANDED 标志创建)。

参数
winname窗口名称。
text要在窗口状态栏上写入的文本。
delayms显示文本的持续时间(以毫秒为单位)。如果在之前的文本超时之前调用此函数,则计时器将重新启动,并且文本将更新。如果此值为零,则文本将永远不会消失。

◆ fontQt()

QtFont cv::fontQt ( const String & nameFont,
int pointSize = -1,
Scalar color = Scalar::all(0),
int weight = QT_FONT_NORMAL,
int style = QT_STYLE_NORMAL,
int spacing = 0 )

#include <opencv2/highgui.hpp>

创建字体以在图像上绘制文本。

fontQt 函数创建一个 cv::QtFont 对象。此 cv::QtFont 与 putText 不兼容。

此函数的基本用法如下:

QtFont font = fontQt("Times");
addText( img1, "Hello World !", Point(50,50), font);
Point2i Point
定义 types.hpp:209
void addText(const Mat &img, const String &text, Point org, const QtFont &font)
在图像上绘制文本。
QtFont fontQt(const String &nameFont, int pointSize=-1, Scalar color=Scalar::all(0), int weight=QT_FONT_NORMAL, int style=QT_STYLE_NORMAL, int spacing=0)
创建字体以在图像上绘制文本。
仅适用于 Qt 的 QtFont。请参阅 cv::fontQt。
定义 highgui.hpp:677
参数
nameFont字体名称。名称应与系统字体名称匹配(例如Times*)。如果找不到字体,则使用默认字体。
pointSize字号。如果未指定、等于零或为负值,则字号将设置为系统相关的默认值。通常为12磅。
color字体颜色,采用 BGRA 格式,其中 A = 255 表示完全透明。为简便起见,可以使用宏 CV_RGB。
weight字体粗细。可用的操作标志为:cv::QtFontWeights 您也可以指定一个正整数以获得更好的控制。
style字体样式。可用的操作标志为:cv::QtFontStyles
spacing字符间距。可以为负值或正值。

◆ loadWindowParameters()

void cv::loadWindowParameters ( const String & windowName)

#include <opencv2/highgui.hpp>

加载指定窗口的参数。

loadWindowParameters 函数加载窗口 windowName 的大小、位置、标志、轨迹条值、缩放和平移位置。

参数
windowName窗口名称。

◆ saveWindowParameters()

void cv::saveWindowParameters ( const String & windowName)

#include <opencv2/highgui.hpp>

保存指定窗口的参数。

saveWindowParameters 函数保存窗口 windowName 的大小、位置、标志、轨迹条值、缩放和平移位置。

参数
windowName窗口名称。

◆ startLoop()

int cv::startLoop ( int(* pt2Func )(int argc, char *argv[]),
int argc,
char * argv[] )

#include <opencv2/highgui.hpp>

◆ stopLoop()

void cv::stopLoop ( )

#include <opencv2/highgui.hpp>