opencv激光追踪
时间: 2023-09-12 07:06:55 浏览: 50
在OpenCV中,激光追踪是通过计算光流来实现的。光流是描述图像中像素运动的矢量场。OpenCV提供了几个函数用于计算光流,其中包括goodFeaturesToTrack、calcOpticalFlowPyrLK和calcOpticalFlowFarneback。
- goodFeaturesToTrack函数可以计算Harris角点和shi-tomasi角点,默认情况下计算的是shi-tomasi角点。它可以用来检测图像中的稀疏特征点,如角点。函数原型如下:
```
void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners, int maxCorners, double qualityLevel, double minDistance, InputArray _mask, int blockSize, bool useHarrisDetector, double harrisK )
```
- calcOpticalFlowPyrLK函数可以计算稀疏光流。它使用前一帧图像和后一帧图像之间的特征点来计算光流。函数原型如下:
```
void cv::calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArray status, OutputArray err, Size winSize = Size(21, 21), int maxLevel = 3, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, 0.01), int flags = 0, double minEigThreshold = 1e-4 )
```
- calcOpticalFlowFarneback函数可以计算稠密光流。它使用前一帧图像和后一帧图像之间的像素来计算光流。函数原型如下:
```
void cv::calcOpticalFlowFarneback( InputArray prev, InputArray next, InputOutputArray flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags )
```
这些函数可以根据不同的需求选择使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Opencv -- 基于光流的对象跟踪](https://blog.csdn.net/m0_60005621/article/details/126828588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]