2015-04-17 23 views
0

我想使用adaptiveThreshold函數OpenCV以確定vector<double>中值的適當局部閾值。如何使用OpenCV中的adaptiveThreshold獲取大於255的值(即類型CV_8UC1)?

adaptiveThresholddocs被指定如下:

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C) 

注意src必須是一個源8位單通道圖像(因此輸入需要是CV_8UC1類型的,如果我明白如果我錯了,請糾正我的錯誤...)。

由於我vector<double>CV_8UC1類型,以接近這將是一個範圍的0255內歸一化值,然後進料得到的歸一化值作爲vector<unsigned char>adaptiveThreshold功能的一種方式的不。

這可能看起來不錯乍一看,但它內部配備了大量損失的精度值我原來vector<double>變得非常大,並得到標準化下降到0範圍內255

所以,我想知道是否沒有選項使用adaptiveThreshold功能的更廣泛的值。對我來說,這似乎是非常不合邏輯的,它應該只與最大值爲255的值一起工作...感覺像我監督的事情很簡單,但我不知道如何解決問題...

+0

不是迂腐,但是你是否量化了在規範化數值時失去了多少準確性,以及它是否會對應用程序產生影響? – Aurelius

回答

1

我'恐怕沒有更廣泛的價值選擇。但是如果OpenCV是開源的,那麼派生一個採用'double'值的版本是相當容易的。只需找到adaptiveThreshold()的源代碼並將其更改爲供您自己使用。

相關問題