项目简介
本项目是基于OpenCV和FFmpeg的摄像头与视频处理解决方案,适用于Ubuntu系统,尤其适合ARM架构的设备。项目涉及从摄像头捕获图像和视频、处理YouTube视频流以及运用OpenCV进行图像和视频处理等多方面内容。
项目的主要特性和功能
- 摄像头图像捕获:可使用
fswebcam
捕获静态图像,guvcview
进行视频捕获,FFmpeg进行屏幕捕获。 - OpenCV图像处理:能使用OpenCV读取并显示图片,从命令行读取图片并显示,还可捕获并显示摄像头视频流。
- 视频处理:可以用
youtube-dl
从YouTube下载视频,在Tegra设备上使用OpenCV处理视频。 - 开发环境配置:支持配置Visual Studio Code的IntelliSense自动补全功能,以辅助OpenCV开发。
安装使用步骤
1. 安装依赖
确保系统已安装必要的依赖包:
bash
sudo apt update && sudo apt install -y cmake g++ wget unzip
sudo apt-get install libgtk2.0-dev pkg-config libcanberra-gtk-module libcanberra-gtk3-module
2. 安装OpenCV
下载并安装OpenCV:
bash
unzip opencv.zip
mkdir -p build && cd build
cmake -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_FFMPEG=ON ../opencv-master
cmake --build .
sudo make install
3. 配置开发环境
在Visual Studio Code中配置OpenCV的IntelliSense自动补全功能,创建或编辑c_cpp_properties.json
文件,添加以下内容:
json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "linux-clang-arm64"
}
],
"version": 4
}
4. 使用示例
捕获并显示图片
使用fswebcam
捕获图片:
bash
fswebcam -r 2048x1538 test.jpg
使用OpenCV显示图片:
```cpp
include
using namespace cv;
int main() { Mat image = imread("test.jpg", IMREAD_GRAYSCALE); if (image.empty()) { return -1; } imshow("Image", image); waitKey(0); return 0; } ```
捕获并显示视频流
使用OpenCV捕获并显示摄像头视频流: ```cpp
include
using namespace cv;
int main() { VideoCapture cap(0); if (!cap.isOpened()) { return -1; } Mat frame; while (true) { cap >> frame; imshow("Video", frame); if (waitKey(30) == 'e') break; } return 0; } ```
通过以上步骤,可成功配置并使用本项目进行摄像头与视频处理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】