OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配项
| 枚举 | 函数
Qt 新功能

详细描述

图像

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

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

int main(int argc, char *argv[])
{
int value = 50;
int value2 = 0;
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);
}
return 0;
}
std::string String
**定义** cvstd.hpp:151
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
@ WINDOW_NORMAL
用户可以调整窗口大小(无限制)/ 也用于将全屏窗口切换到正常窗口...
**定义** highgui.hpp:143
@ WINDOW_GUI_NORMAL
旧式方法
**定义** highgui.hpp:151
@ WINDOW_AUTOSIZE
用户无法调整窗口大小,大小受显示图像的限制。
**定义** highgui.hpp:144
void imshow(const String &winname, InputArray mat)
在指定的窗口中显示图像。
int waitKey(int delay=0)
等待按下键。
void namedWindow(const String &winname, int flags=WINDOW_AUTOSIZE)
创建窗口。
void destroyAllWindows()
销毁所有 HighGUI 窗口。
void setMouseCallback(const String &winname, MouseCallback onMouse, void *userdata=0)
为指定的窗口设置鼠标处理程序。
int createTrackbar(const String &trackbarname, const String &winname, int *value, int count, TrackbarCallback onChange=0, void *userdata=0)
创建滑块并将其附加到指定的窗口。
CV_EXPORTS_W Mat imread(const String &filename, int flags=IMREAD_COLOR)
从文件加载图像。
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]]]]]) -> None

#include <opencv2/highgui.hpp>

在图像上绘制文本。

该函数使用特定的字体 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]]]]]) -> None

#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>

将按钮附加到控制面板。

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

以下是一些有关 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);// 在新行中创建一个按钮
@ 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]) -> None

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

#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)
创建要在图像上绘制文本的字体。
QtFont 仅适用于 Qt。参见 cv::fontQt。
定义 highgui.hpp:673
参数
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(*)(int argc, char *argv[])  pt2Func,
int  argc,
char *  argv[] 
)

#include <opencv2/highgui.hpp>

◆ stopLoop()

void cv::stopLoop ( )

#include <opencv2/highgui.hpp>