opencv(c++)imshow出错的原因(路径问题)

废话不多说,路径有两种:
1.绝对路径 C:\Users\27635\Desktop\IMAGE\.jpg
2.相对路径 ./IMAGE/
.jpg

一、 绝对路径

imshow出错多数是路径问题,类似于
在这里插入图片描述
将上面的路径改为
在这里插入图片描述
因为存在转义字符的缘故。

二、相对路径

因为多数教程讲一堆知识,但有些人还是搞不懂相对路径该怎么写,所以我用实例来演示。
相对路径
相对路径中"…/“表示返回到上一级的目录,”./"表示当前目录
比如,我的项目工程为是这样的
在这里插入图片描述
我要传IMAGE文件中的184.jpg
在这里插入图片描述
那么传入的参数可以写为:
在这里插入图片描述
(因为IMAGE文件和1.cpp在一个目录下)
第一遍博客,有不对的地方希望大佬指正。

### 使用OpenCV C++读取视频文件 为了实现通过C++使用OpenCV库来读取视频文件的功能,可以利用`cv::VideoCapture`类。此功能允许程序打开并解码来自文件的视频流或连接到摄像头获取实时数据[^1]。 下面是一个简单的例子展示如何加载本地磁盘上的视频文件,并逐帧显示其内容: ```cpp #include <opencv2/opencv.hpp> #include <iostream> int main() { // 创建 VideoCapture 对象并指定要播放的视频路径 cv::VideoCapture cap("path_to_video_file.mp4"); // 检查是否成功打开了视频文件 if (!cap.isOpened()) { std::cerr << "Error opening video stream or file" << std::endl; return -1; } cv::Mat frame; while(true){ // 抓取下一帧图像 cap >> frame; // 如果抓取出错,则退出循环(可能是到达了文件结尾) if(frame.empty()){ break; } // 显示当前处理的画面窗口名为 'Frame' cv::imshow("Frame", frame); // 等待按键事件,延时时间为 30ms;如果按下 ESC 键则终止循环 char c=(char)cv::waitKey(30); if(c==27) break; } // 清理资源 cap.release(); cv::destroyAllWindows(); return 0; } ``` 这段代码首先创建了一个`VideoCapture`对象用于访问给定路径下的视频文件。接着进入无限循环,在每次迭代过程中尝试捕获一帧画面并将其存储于矩阵变量中。当遇到空帧时表示已经达到了视频末端或是发生了其他错误情况,此时应跳出循环结束操作。最后关闭所有由OpenCV管理的图形界面以及释放关联的硬件接口资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值