天天看點

VTK高通濾波器

5.6.3 高通濾波

1.理想高通濾波器

高通濾波與低通濾波正好相反,是讓頻域圖像的高頻部分通過而抑制低頻部分。圖像的邊緣對應高頻分量,是以高通濾波的效果是圖像銳化。同樣,最簡單的高通濾波器是理想高通濾波器。其基本思想是通過設定一個頻率門檻值,讓高于該門檻值的頻率部分通過,而低于門檻值的低頻部分設定為0。下述代碼示範了VTK 中理想高通濾波vtkImageIdealHighPass 的應用:

  1. vtkSmartPointer<vtkImageIdealHighPass> highPassFilter =  
  2. vtkSmartPointer<vtkImageIdealHighPass>::New();  
  3. highPassFilter->SetInputConnection(fftFilter->GetOutputPort());  
  4. highPassFilter->SetXCutOff(0.1);  
  5. highPassFilter->SetYCutOff(0.1);  
  6. highPassFilter->Update(); 

同低通濾波一樣,通過SetXCutOff()和SetYCutOff()設定X 和Y 方向的截止頻率。圖 5-42 是理想高通濾波的運作結果。從結果可以看出,理想高通濾波後圖像得到銳化處理,圖像僅剩下邊緣。

VTK高通濾波器

2.巴特沃斯高通濾波器

理想高通濾波器不能通過電子元器件來實作,而且存在振鈴現象。在實際應用中,最常使用的高通濾波器是巴特沃斯高通濾波器。該濾波器的轉移函數為

VTK高通濾波器

D(u,v)表示頻域中點到頻域平面的距離,D0 是截止頻率。當D(u,v)大于D0 時,對應的H(u,v)逐漸接近1,進而使得高頻部分得以通過;而當D(u,v)小于D0 時,H(u,v)逐漸接近0,實作低頻部分過濾。巴特沃斯高通濾波器在VTK 中對應的類是vtkImageButterworthHighPass類,代碼如下:

  1. vtkSmartPointer<vtkImageButterworthLowPass> lowPassFilter =  
  2. vtkSmartPointer<vtkImageButterworthLowPass>::New();  
  3. lowPassFilter->SetInputConnection(fftFilter->GetOutputPort());  
  4. lowPassFilter->SetXCutOff(0.05);  
  5. lowPassFilter->SetYCutOff(0.05);  
  6. lowPassFilter->Update(); 

vtkImageButterworthHighPass 的使用方法與理想高通濾波一緻。這裡也需要設定X 和Y軸的截止頻率,為了便于比較,其截止頻域與理想高通濾波設定一緻。圖5-43 為其運作結果。

VTK高通濾波器