第2天 OpenCV头文件概览与打开avi视频范例
参考书籍:《学习OpenCV3》
1. 头文件概览
1.1 汇总型头文件 <opencv2/opencv.hpp>
1.2 opencv.hpp包含OpenCV各个模块的头文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include "opencv2/core.hpp"//结构和数学运算 #include "opencv2/calib3d.hpp"//校准以及双目视觉相关 #include "opencv2/features2d.hpp"//用于追踪的二维特征 #include "opencv2/dnn.hpp"//深度学习函数 #include "opencv2/flann.hpp"//最近邻搜索匹配函数 #include "opencv2/highgui.hpp"//显示、滑动条、鼠标操作以及输入输出相关 #include "opencv2/imgcodecs.hpp"//图像输入输出函数 #include "opencv2/imgproc.hpp"//图像处理函数 #include "opencv2/ml.hpp"//机器学习、聚类以及模式识别相关 #include "opencv2/objdetect.hpp"//级联人脸分类器、latent SVM分类器、HoG特征和平面片检测器 #include "opencv2/photo.hpp"//操作和恢复照片相关算法 #include "opencv2/stitching.hpp"//图像拼接函数 #include "opencv2/video.hpp"//视觉追踪以及背景分割 #include "opencv2/videoio.hpp"//视频输入输出函数 |
2. 读取avi视频简单范例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <opencv2/highgui.hpp> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { namedWindow( "example" , cv::WINDOW_AUTOSIZE); VideoCapture cap; cap.open( "/Users/xxx/data/Megamind.avi" ); cv::Mat frame; for (;;){ cap >> frame; if ( frame.empty()) break ; //Ran Out of film cv::imshow( "example" ,frame); if (cv::waitKey(33) >= 0) break ; } return 0; } |
3. 矩阵等价和相似
3.1 等价矩阵的定义
两个m*n阶矩阵,如果这两个矩阵满足B=QAP(Q为m*m阶可逆矩阵,P为n*n阶可逆矩阵),则A和B等价。也就是说,存在可逆矩阵(P、Q),使得A经过有限次的初等变换得到B。
3.2 等价矩阵的特性
反身、对称、传递;r(A)=r(B) ; |A|=k|B| ;
3.3 相似矩阵的定义
A、B都是n阶矩阵,若存在可逆矩阵P,,则B是A的相似矩阵,记为A~B。A到B的变换称为相似变换,可逆矩阵称为相似变换矩阵。
3.4 相似矩阵的性质
反身、对称、传递;r(A)=r(B);|A|=|B|;tr(A)=tr(B);
若A与对角矩阵相似,则称A为可对角化矩阵。
3.5 定理1
n阶矩阵A与对角阵相似的充分必要条件是矩阵A有n个线性无关的特征向量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构