当前位置: 首页 > wzjs >正文

顺义企业网站建站公司手机上怎么制作网页

顺义企业网站建站公司,手机上怎么制作网页,宜春做网站,泰安东平房产信息网Qt中的QLabel控件用于显示文本或图像,不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示: Widgets_Test.h: class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…

      Qt中的QLabel控件用于显示文本或图像,不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示:

      Widgets_Test.h:

class Widgets_Test : public QMainWindow
{Q_OBJECTpublic:Widgets_Test(QWidget *parent = nullptr);~Widgets_Test();private slots:void start_capture();void close_caputre();void update_frame(const QImage& image);private:void capture();Ui::Widgets_TestClass ui_;std::thread capture_thread_{};std::atomic<bool> is_running_{ false };
};

      Widgets_Test.cpp:

Widgets_Test::Widgets_Test(QWidget *parent): QMainWindow(parent)
{ui_.setupUi(this);connect(ui_.button_close, &QPushButton::clicked, this, &Widgets_Test::close);connect(ui_.open_camera, &QPushButton::clicked, this, &Widgets_Test::start_capture);connect(ui_.close_camera, &QPushButton::clicked, this, & Widgets_Test::close_caputre);connect(ui_.open_camera, &QPushButton::clicked, this, [this] {ui_.button_close->setEnabled(false);});connect(ui_.close_camera, &QPushButton::clicked, this, [this] {ui_.button_close->setEnabled(true);});
}Widgets_Test::~Widgets_Test()
{}void Widgets_Test::start_capture()
{is_running_.store(true);capture_thread_ = std::thread([this] {this->capture();});
}void Widgets_Test::capture()
{cv::VideoCapture cap(0);if (!cap.isOpened()) {qWarning("failed to open camera"); // QMetaObject::invokeMethod, UI操作必须在主线程中执行emit ui_.close_camera->clicked();return;}auto w1 = static_cast<int>(cap.get(cv::CAP_PROP_FRAME_WIDTH));auto h1 = static_cast<int>(cap.get(cv::CAP_PROP_FRAME_HEIGHT));auto w2 = ui_.label_show->width();auto h2 = ui_.label_show->height();qDebug() << w1 << "," << h1 << "," << w2 << "," << h2;cv::Mat frame{}, rgb{};QImage image{}, img_copy{};while (is_running_.load()) {cap >> frame;if (frame.empty())continue;cv::cvtColor(frame, rgb, cv::COLOR_BGR2RGB);cv::resize(rgb, rgb, cv::Size(w2, h2));image = QImage(rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_RGB888);img_copy = image.copy();QMetaObject::invokeMethod(this, "update_frame", Qt::QueuedConnection, Q_ARG(QImage, img_copy));std::this_thread::sleep_for(std::chrono::milliseconds(10));}
}void Widgets_Test::update_frame(const QImage& image)
{ui_.label_show->setPixmap(QPixmap::fromImage(image));
}void Widgets_Test::close_caputre()
{is_running_.store(false);if (capture_thread_.joinable())capture_thread_.join();
}

      说明

      1. 在子线程中获取摄像头每帧数据:

      (1).因为QLabel中接收数据的类型为QImage,这里需要将cv::Mat转换为QImage。

      (2).通过QMetaObject::invokeMethod函数调用对象上的信号或槽函数,支持跨线程调用。这里使用此函数将子线程获取到的图像数据传给主线程上的QLabel控件。使用Qt::QueuedConnection,跨线程异步调用。

      2.UI操作必须在主线程中执行

      (1).主线程中通过QLabel的setPixmap函数显示图像。

      3.点击"open camera",开始打开摄像头采集显示图像;点击"close camera",关闭摄像头。

      执行结果如下图所示:

      GitHub:https://github.com/fengbingchun/Qt_Test

http://www.dtcms.com/wzjs/312463.html

相关文章:

  • 站长如何做视频类网站免费网站统计工具
  • 手机网站宽度多少合适seo培训讲师招聘
  • 做网站收入怎样北京搜索引擎优化
  • 网站策划书一般包括以下内容批量查询权重
  • 杭州电子商务网站建设关键词排名推广
  • 洛阳网站建设培训软文营销步骤
  • 广州做网站建设的公司哪家好网站建立具体步骤是
  • 购物网商城首页吉林关键词排名优化软件
  • 网站优化排名软件网各大网站
  • 菏泽住房和城乡建设局网站网络营销的背景和意义
  • 网站内容百度不收录视频广告联盟平台
  • 进入网站后台代码东莞百度seo
  • 移动应用网站开发阶段作业视频号视频怎么看下载链接
  • 请问有重庆有做网站吗网站推广优化
  • 一个网站两个域名备案百度提交入口网址在哪
  • 信息行业网站建设友情链接怎么购买
  • 手机网站设计背景图片服装市场调研报告范文
  • 望都网站建设营销公司取名字大全
  • 鞍山百度网站怎么制作b2b网站推广优化
  • 亚马逊网网站建设规划报告什么是网站推广策略
  • 建网站要定制还是第三方系统网络营销的重要性与意义
  • 招聘网站建设销售seo中国官网
  • 用了采集站域名做网站it培训学校it培训机构
  • 东莞易宣网站建设公司怎么样微信引流推广精准粉
  • asp.net制作网站开发长春seo外包
  • 洛阳电商网站建设seo网站推广案例
  • 红酒网站建设方案范本谷歌seo和百度seo
  • 网站规划与网站建设网站推广 方法
  • 网站设计收费seo推广排名重要吗
  • wordpress网站地图如何做好营销推广