opencv中边界处理方式
时间: 2023-11-21 14:57:58 浏览: 72
C++ opencv - 图像处理 - 目标定位
5星 · 资源好评率100%
OpenCV中处理图像边界时,通常采用在源图像周围添加虚拟像素的方法。这样可以解决缺少相邻像素点的边缘像素点(即边界)计算出一个有效结果的问题。在没有公认方法的情况下,一般通过自定义的方式在某一场景中处理问题。另外,OpenCV提供了`borderInterpolate()`函数来计算一个维度上的外推,该函数的输入是一个坐标p、一个长度len(关联方向上的图像的实际大小)以及一个边界类型。例如,在混合的边界条件下计算一个特定像素的值,在一维中使用`cv::BORDER_REFLECT_101`,在另一个维度中使用`cv::BORDER_WRAP`,可以使用以下代码实现:
```cpp
int nRow = cv::borderInterpolate(100, srcImg.rows, cv::BORDER_REFLECT_101);
int nCol = cv::borderInterpolate(-6, srcImg.cols, cv::BORDER_WRAP);
cv::Vec3b val = srcImg.at<cv::Vec3b>(nRow, nCol);
```
阅读全文