簡體   English   中英

如何在OpenCV中用高斯過濾單柱墊

[英]How to filter a single column mat with Gaussian in OpenCV

我只有一列和1600行的墊子。 我想使用高斯過濾。

我嘗試了以下方法:

Mat AFilt=Mat(palm_contour.size(),1,CV_32F);
GaussianBlur(A,AFilt,cv::Size(20,1),3);

但是我在AFilt(過濾后的墊子)和A中得到了完全相同的值。看起來GaussianBlur什么也沒做。

這是什么問題 如何用高斯核平滑單柱墊?

我讀了有關BaseColumnFilt的文章,但是還沒有看到任何用法示例,因此我不確定如何使用它們。

由於我一無所知,因此給予的任何幫助將不勝感激。

我正在使用Visual Studio 2012在Windows 8上使用OpenCV 2.4.5。

謝謝

吉爾。

您只有一列,但是您將高斯的寬度指定為大而不是指定高度! OpenCV根據上下文使用行,列或x,y表示法。 一個通用規則是,每當您使用Point或Size時,它們的行為都類似於x,y,並且每當參數為單獨的值時,它們的行為就類似於row,col。

內核大小也應該是奇數。 如果指定內核大小,則可以將sigma設置為零,以使OpenCV計算合適的sigma值。

總而言之,這應該更好地工作:

GaussianBlur(A,AFilt,cv::Size(1,21),0);

og GaussianBlur文檔說內核大小必須是奇數,我將嘗試使用奇數大小的內核,看看是否有任何區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM