2010-06-17 18 views
2

這是一個OpenCV2問題。如何順利環列向量

我具有表示關閉空間曲線的矩陣。

cv::Mat_<Point3f> points; 

我想平滑它(使用,例如高斯內核)。

我已經嘗試使用:

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

但我得到的錯誤:

Assertion failed (columnBorderType != BORDER_WRAP)

什麼是卷積在OpenCV中環矢量的最佳方式? (「最佳」應該考慮到空間和時間的要求。)

+0

我滿意的回答,我自己的問題,但不理想。如果你有更好的回答,請發表它,我會高興地改變接受的答案。 – Geoff 2010-07-12 19:29:29

回答

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,因爲內核需要多個點。然後我刪除額外的點。這與上述類似,但浪費更少的空間和時間。