OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
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更多...
 

枚举

enum  cv::QtButtonTypes {
  cv::QT_PUSH_BUTTON = 0 ,
  cv::QT_CHECKBOX = 1 ,
  cv::QT_RADIOBOX = 2 ,
  cv::QT_NEW_BUTTONBAR = 1024
}
 Qt "button" type. 更多...
 
enum  cv::QtFontStyles {
  cv::QT_STYLE_NORMAL = 0 ,
  cv::QT_STYLE_ITALIC = 1 ,
  cv::QT_STYLE_OBLIQUE = 2
}
 Qt font style. 更多...
 
enum  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 font weight. 更多...
 

函数

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)
 Loads parameters of the specified window.
 
void cv::saveWindowParameters (const String &windowName)
 保存指定窗口的参数。
 
int cv::startLoop (int(*pt2Func)(int argc, char *argv[]), int argc, char *argv[])
 
void cv::stopLoop ()
 

枚举类型文档 (Enumeration Type Documentation)

◆ QtButtonTypes

#include <opencv2/highgui.hpp>

Qt "button" type.

枚举值 (Enumerator)
QT_PUSH_BUTTON 
Python: cv.QT_PUSH_BUTTON

Push button.

QT_CHECKBOX 
Python: cv.QT_CHECKBOX

Checkbox button.

QT_RADIOBOX 
Python: cv.QT_RADIOBOX

Radiobox button.

QT_NEW_BUTTONBAR 
Python: cv.QT_NEW_BUTTONBAR

Button should create a new buttonbar.

◆ QtFontStyles

#include <opencv2/highgui.hpp>

Qt font style.

枚举值 (Enumerator)
QT_STYLE_NORMAL 
Python: cv.QT_STYLE_NORMAL

Normal font.

QT_STYLE_ITALIC 
Python: cv.QT_STYLE_ITALIC

Italic font.

QT_STYLE_OBLIQUE 
Python: cv.QT_STYLE_OBLIQUE

Oblique font.

◆ QtFontWeights

#include <opencv2/highgui.hpp>

Qt font weight.

枚举值 (Enumerator)
QT_FONT_LIGHT 
Python: cv.QT_FONT_LIGHT

Weight of 25.

QT_FONT_NORMAL 
Python: cv.QT_FONT_NORMAL

Weight of 50.

QT_FONT_DEMIBOLD 
Python: cv.QT_FONT_DEMIBOLD

Weight of 63.

QT_FONT_BOLD 
Python: cv.QT_FONT_BOLD

Weight of 75.

QT_FONT_BLACK 
Python: cv.QT_FONT_BLACK

Weight of 87.

函数文档 (Function Documentation)

◆ 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]]]]]) -> None

#include <opencv2/highgui.hpp>

在图像上绘制文本。

函数 addText 使用特定的字体 font 在图像 img 上绘制 text(请参阅示例 cv::fontQt

参数
img8位3通道图像,文本应绘制在此图像上。
text要在图像上写入的文本。
org文本应在图像上开始的位置 Point(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]]]]]) -> None

#include <opencv2/highgui.hpp>

在图像上绘制文本。

参数
img8位3通道图像,文本应绘制在此图像上。
text要在图像上写入的文本。
org文本应在图像上开始的位置 Point(x,y)
nameFont字体名称。名称应与系统字体名称匹配(例如 Times*)。如果找不到字体,则使用默认字体。
pointSize字体大小。如果未指定、等于零或为负数,则字体点大小设置为系统相关的默认值。通常为 12 点。
color字体的颜色(BGRA 格式),其中 A = 255 表示完全透明。
权重字体粗细。可用的操作标志有: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 标志添加到类型中,则会创建一个新的按钮栏。

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

createButton("",callbackButton);//create a push button "button 0", that will call 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);// create a push button in a new row
int createButton(const String &bar_name, ButtonCallback on_change, void *userdata=0, int type=QT_PUSH_BUTTON, bool initial_button_state=false)
将按钮附加到控制面板。
@ QT_CHECKBOX
Checkbox button.
Definition highgui.hpp:215
@ QT_RADIOBOX
Radiobox button.
Definition highgui.hpp:216
@ QT_PUSH_BUTTON
Push button.
Definition highgui.hpp:214
@ QT_NEW_BUTTONBAR
Button should create a new buttonbar.
Definition 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 & 窗口名称,
const String & text,
int delayms = 0 )
Python
cv.displayOverlay(winname, text[, delayms]) -> None

#include <opencv2/highgui.hpp>

在窗口图像上显示文本,并持续指定的时间。

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

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

◆ displayStatusBar()

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

#include <opencv2/highgui.hpp>

在窗口状态栏上显示文本,并持续指定的时间。

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

参数
窗口名称窗口的名称。
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)
创建用于在图像上绘制文本的字体。
QtFont available only for Qt. See cv::fontQt.
Definition highgui.hpp:677
参数
nameFont字体名称。名称应与系统字体名称匹配(例如 Times*)。如果找不到字体,则使用默认字体。
pointSize字体大小。如果未指定、等于零或为负数,则字体点大小设置为系统相关的默认值。通常为 12 点。
color字体的颜色(BGRA 格式),其中 A = 255 表示完全透明。为简单起见,请使用宏 CV_RGB。
权重字体粗细。可用的操作标志有:cv::QtFontWeights 您也可以指定一个正整数来更好地控制。
style字体样式。可用的操作标志有:cv::QtFontStyles
spacing字符间距。可以是负数或正数。

◆ loadWindowParameters()

void cv::loadWindowParameters ( const String & windowName)

#include <opencv2/highgui.hpp>

Loads parameters of the specified window.

函数 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>