用插值的方法進行直方圖平滑


前面介紹了如何用頻率濾波的方法進行直方圖平滑,現在嘗試用插值的方法做平滑。

設計思路:

(1)設定步長step

(2)對於直方圖上的某點x,按照如下公式計算它平滑后的值temp

smooth函數的代碼如下:

View Code
private int[] smooth(int[] arr, int step) {
            int start = step - step/2;
            int end = 256 - step/2 ;
            double temp = 0;

            int[] res = new int[256];
            
            for (int i = start; i < end; i++) {
                temp = 0;
                for (int j = 0-step/2; j < step/2; j++) {
                    temp += arr[i + j];
                }
                temp /= step;
                res[i] = (int)temp;
            }
            return res;
}

平滑處理的步長及效果的關系如下:

當步長增加到30時,已經可以將直方圖變得很順滑了。但是也損失了很多細節。不過這對於之后的求導是有益處的。

在完成直方圖的平滑處理以后,就可以進行求波峰波谷或求導的操作了。

后續見此


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM