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

竞价网站移动端膜结构网站推广怎么做

竞价网站移动端,膜结构网站推广怎么做,网站集群建设要求,网站搭建 保定文章目录 一、第一个程序:显示图片1.1 cv::imread1.2 cv::namedWindow1.3 cv::imshow 二、第二个程序:视频2.1 cv::VideoCapture 三、加入了滑动条的基本浏览窗口 一、第一个程序:显示图片 示例:一个简单的加载并显示图像的OpenC…

文章目录

    • 一、第一个程序:显示图片
      • 1.1 cv::imread
      • 1.2 cv::namedWindow
      • 1.3 cv::imshow
    • 二、第二个程序:视频
      • 2.1 cv::VideoCapture
    • 三、加入了滑动条的基本浏览窗口

一、第一个程序:显示图片

示例:一个简单的加载并显示图像的OpenCV程序

#include <iostream>
#include "./opencv2/opencv.hpp"int main() {cv::Mat image = cv::imread("D:/opencv_demo.png");if (image.empty()) {std::cout << "could not load image..." << std::endl;return 0;}cv::namedWindow("opencv_demo", 0);cv::imshow("opencv_demo", image);cv::waitKey(0);return 0;
}

OpenCV提供了一些实用工具来读取从视频流到摄像机画面的各种各样的图像格式,这些工具都是HighGUI的一部分。我们将使用其中的一些工具来创建一个简单的程序,这个程序将打开一张图像并且将其显示在屏幕上。

1.1 cv::imread

函数原型:

cv::Mat cv::imread(const std::string &filename, int flags = cv::IMREAD_COLOR);

作用:cv::imread 是 OpenCV 中用于从文件读取图像的函数。它的作用是将图像文件读取为 cv::Mat 类型的矩阵,方便后续进行图像处理操作。

参数说明:
在这里插入图片描述
常用 flags 参数:
在这里插入图片描述
返回值:

  • 成功时返回一个包含图像数据的 cv::Mat 对象;
  • 如果文件不存在或无法读取,返回一个 空矩阵(可用 mat.empty() 检查)。

1.2 cv::namedWindow

函数原型:

void cv::namedWindow(const std::string &winname, int flags = cv::WINDOW_AUTOSIZE);

作用:cv::namedWindow 是 OpenCV 中用于创建一个图像显示窗口的函数,通常和 cv::imshow 搭配使用。它可以指定窗口的名称和一些属性,如是否可以调整大小等。

参数说明:
在这里插入图片描述

常用 flags 参数:
在这里插入图片描述

1.3 cv::imshow

函数原型:

void cv::imshow(const std::string &winname, cv::InputArray mat);

作用:cv::imshow 是 OpenCV 中用于 显示图像 的函数,常与 cv::namedWindow 和 cv::waitKey 搭配使用,是图像可视化的核心函数之一。

参数说明:
在这里插入图片描述

二、第二个程序:视频

示例:一个简单的播放视频文件的OpenCV程序

#include <iostream>
#include "./opencv2/opencv.hpp"int main() {// 尝试打开视频文件std::string videoPath = "video.mp4";cv::VideoCapture cap(videoPath);if (!cap.isOpened()) {std::cerr << "无法打开视频文件:" << videoPath << std::endl;std::cerr << "请检查文件路径是否正确,是否存在视频文件。" << std::endl;return -1;}// 创建显示窗口cv::namedWindow("视频播放", cv::WINDOW_NORMAL);cv::Mat frame;while (true) {// 读取一帧bool success = cap.read(frame);if (!success || frame.empty()) {std::cout << "视频播放完毕或读取失败。" << std::endl;break;}// 显示当前帧cv::imshow("视频播放", frame);// 每 25ms 等待一次按键(按 ESC 键退出)char key = (char)cv::waitKey(25);if (key == 27) break;  // ESC}// 释放资源cap.release();cv::destroyAllWindows();return 0;
}

2.1 cv::VideoCapture

cv::VideoCapture 是 OpenCV 中用于 读取视频数据源 的类,既可以用来读取视频文件,也可以从摄像头中实时采集图像帧,是处理视频流的核心组件之一。

常见构造方式:

cv::VideoCapture cap;                  // 空对象,后续调用 open()
cv::VideoCapture cap(0);              // 打开默认摄像头
cv::VideoCapture cap("video.mp4");    // 打开视频文件

也可以使用 .open(…) 动态打开源:

cv::VideoCapture cap;
cap.open("video.mp4");

常用函数说明:
在这里插入图片描述

打开摄像头示例:

cv::VideoCapture cap(0);  // 0 表示默认摄像头
if (!cap.isOpened()) {std::cerr << "无法打开摄像头!" << std::endl;return -1;
}

获取常用视频属性:

double width = cap.get(cv::CAP_PROP_FRAME_WIDTH);
double height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);
double fps = cap.get(cv::CAP_PROP_FPS);
double totalFrames = cap.get(cv::CAP_PROP_FRAME_COUNT);

常见属性 ID(用于 get() / set()):
在这里插入图片描述

三、加入了滑动条的基本浏览窗口

在 OpenCV 中,如果你想播放视频或浏览图像,并添加滑动条(trackbar)来控制帧数或图像编号,可以使用 cv::createTrackbar() 来实现。

示例:下面是一个带滑动条的基本视频浏览器示例,用户可以通过滑动条选择播放哪一帧

#include <iostream>
#include "./opencv2/opencv.hpp"cv::VideoCapture cap;
int totalFrames = 0;
int currentFrame = 0;// 滑动条回调函数
void onTrackbarSlide(int pos, void*) {cap.set(cv::CAP_PROP_POS_FRAMES, pos);  // 跳转到对应帧cv::Mat frame;cap.read(frame);if (!frame.empty()) {cv::imshow("视频浏览器", frame);}
}int main() {cap.open("video.mp4");  // 读取视频文件if (!cap.isOpened()) {std::cerr << "无法打开视频文件!" << std::endl;return -1;}totalFrames = (int)cap.get(cv::CAP_PROP_FRAME_COUNT);cv::namedWindow("视频浏览器", cv::WINDOW_NORMAL);cv::createTrackbar("位置", "视频浏览器", &currentFrame, totalFrames - 1, onTrackbarSlide);// 显示第一帧onTrackbarSlide(0, nullptr);// 等待按键退出while (true) {int key = cv::waitKey(0);if (key == 27) break;  // ESC 键退出}cap.release();cv::destroyAllWindows();return 0;
}

函数原型:

int cv::createTrackbar(const std::string &trackbarname,const std::string &winname,int *value,int count,TrackbarCallback onChange = 0,void* userdata = 0
);

参数说明:
在这里插入图片描述

加上“播放/暂停控制”的滑动条视频浏览器示例

#include "./opencv2/opencv.hpp"
#include <iostream>cv::VideoCapture cap;
int totalFrames = 0;
int currentFrame = 0;
bool isPlaying = false;// 滑动条回调函数
void onTrackbarSlide(int pos, void*) {cap.set(cv::CAP_PROP_POS_FRAMES, pos);cv::Mat frame;cap.read(frame);if (!frame.empty()) {cv::imshow("视频浏览器", frame);}currentFrame = pos;
}int main() {cap.open("video.mp4");if (!cap.isOpened()) {std::cerr << "无法打开视频文件!" << std::endl;return -1;}totalFrames = (int)cap.get(cv::CAP_PROP_FRAME_COUNT);cv::namedWindow("视频浏览器", cv::WINDOW_NORMAL);cv::createTrackbar("位置", "视频浏览器", &currentFrame, totalFrames - 1, onTrackbarSlide);onTrackbarSlide(0, nullptr);  // 显示第一帧while (true) {if (isPlaying) {if (currentFrame < totalFrames - 1) {currentFrame++;cap.set(cv::CAP_PROP_POS_FRAMES, currentFrame);cv::Mat frame;cap.read(frame);if (!frame.empty()) {cv::imshow("视频浏览器", frame);cv::setTrackbarPos("位置", "视频浏览器", currentFrame);}cv::waitKey(30);  // 控制播放速度(帧率)} else {isPlaying = false;  // 到结尾停止}}int key = cv::waitKey(30);if (key == 27) break;               // ESC 退出else if (key == ' ') isPlaying = !isPlaying; // 空格键播放/暂停else if (key == 'r') onTrackbarSlide(0, nullptr); // r 键重播}cap.release();cv::destroyAllWindows();return 0;
}

文章转载自:

http://fq5eG4td.txxwm.cn
http://O8N0SB5m.txxwm.cn
http://U3sIMpRv.txxwm.cn
http://AdGYMXXd.txxwm.cn
http://Y1t9BsKi.txxwm.cn
http://wFfqn606.txxwm.cn
http://UBbJ84xR.txxwm.cn
http://run4rlUc.txxwm.cn
http://rEV9obD2.txxwm.cn
http://31DbWdAP.txxwm.cn
http://vOyuAU7Y.txxwm.cn
http://9oJ0ZjZ6.txxwm.cn
http://bHReGz2I.txxwm.cn
http://pUCPOn2d.txxwm.cn
http://AvRbWcy8.txxwm.cn
http://sEzU6nWt.txxwm.cn
http://ksRY1XS0.txxwm.cn
http://8vb1jKSw.txxwm.cn
http://NwRptuRr.txxwm.cn
http://hYu7y96x.txxwm.cn
http://fUpizENN.txxwm.cn
http://cayc2ViO.txxwm.cn
http://GjhVu7Rd.txxwm.cn
http://jPG4MMNK.txxwm.cn
http://VNs5ruce.txxwm.cn
http://L0fDmcG4.txxwm.cn
http://lstOZXFy.txxwm.cn
http://pAKko1I2.txxwm.cn
http://SQvJthSy.txxwm.cn
http://EQnOvcXt.txxwm.cn
http://www.dtcms.com/wzjs/686016.html

相关文章:

  • 卡密提取网站怎么做年轻人必备的十大网站
  • 网站建设进度以及具体内容十大网络推广公司
  • 视差网站手机网站优化排名首页
  • 网站建设流量入口如何做贴吧类网站多钱
  • 公司网站域名申请百度竞价点击神器下载安装
  • 临沂企业网站建设公司建网站 必须学html吗
  • 百度地图手机网站开发网站和软件有什么区别
  • 国外h5制作网站深圳手机移动网站开发
  • 企业网站改版项目描述wordpress 获取指定文章标题
  • 做设计找参考的设计网站有哪些工伤做实网站
  • 传统文化网站建设方案怎么创造网站
  • 网站开发算是软件开发自字网站建设教程视频
  • 网站尾部设计全心代发17做网站
  • 网站群的建设东莞市美时家具营销型网站
  • 百度网站排名哪家好网站做的文字乱码
  • 网站建设销售总结apache搭建wordpress如何
  • 做网站编辑的发展方向晋升数码产品网站建设策划书
  • 网站建设属于哪个分类编码济南高端网站建设公司
  • 株洲网站建设报价方案有哪些比较好的企业网站建设
  • 宿州银行网站建设沈阳化工大学建设工程
  • 顺德网站制作公司wordpress置顶重复
  • 网站备案信息找回网站 公司形象
  • 大型网站模板腾讯云服务器网站域名备案
  • 影响网站收录的因素医疗网站建设讯息
  • 一家做特卖的网站叫什么时候wordpress开源程序建站教程
  • 网站建设外包注意事项深圳有没有做网站的
  • dedecms怎么把一个网站的文章导出导到另一个站里经典重庆论坛畅谈重庆
  • 茶叶网站flash模板兼职设计师在哪里接活
  • 一个专业做设计的网站做家教在哪个网站
  • 网站主题定位分类目录采用的是什么编目