【问题标题】:How to smooth a cyclic column vector如何平滑循环列向量
【发布时间】:2010-07-09 04:45:30
【问题描述】:

这是一个 OpenCV2 问题。

我有一个表示闭合空间曲线的矩阵。

cv::Mat_<Point3f> points;

我想对其进行平滑处理(例如使用高斯核)。

我尝试过使用:

cv::Mat_<Point3f> result;
cv::GaussianBlur(points, result, cv::Size(4 * sigma, 1), sigma, sigma, cv::BORDER_WRAP);

但我得到了错误:

断言失败(columnBorderType != BORDER_WRAP)

在 OpenCV 中卷积循环向量的最佳方法是什么? (“最佳”应考虑空间和时间要求。)

【问题讨论】:

  • 我满意地回答了我自己的问题,但并不理想。如果您有更好的答案,请发布,我会很乐意更改已接受的答案。

标签: opencv


【解决方案1】:

我找到了办法。我重复矩阵,然后模糊,然后提取一个范围。

GaussianBlur(repeat(points, 3, 1), ret, cv::Size(0,0), sigma); 
int rows = points.rows;
result = Mat(result, Range(rows, 2 * rows - 1), Range::all());

这需要额外的工作(和额外的空间?)。

编辑:我现在通过复制(包装)手动扩展points,因为内核需要许多点。然后我剪掉加分。这和上面类似,但是浪费的空间和时间更少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2019-06-21
    • 2020-05-04
    • 1970-01-01
    • 2012-07-10
    • 2023-03-19
    • 2013-10-24
    相关资源
    最近更新 更多