C 高通濾波器實現邊緣增強

2021-07-22 17:54:11 字數 1724 閱讀 7858

參考:

主要實現:影象中的線條如果被大塊顏色覆蓋,線條的顏色和覆蓋色區分不明顯的時候,用區域性二值化的方法不能將二者分開,因此可以增強影象的高頻部分,使線條更加明顯易於區分。

**:#include

#include

#include //srand()和rand()函式

#include

#include

#include

#include

#include

#include

#include

using namespace std;

using namespace cv;

double d0 = 80;

void ilpf(cvmat* src, const double d0)

else if (i > y)

else if (j > x)

else

switch (state)

//1.二維高斯高通濾波器

//tempd = 1 - exp(-0.5 * pow(tempd / d0, 2));

//((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2] = tempd;

//((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2 + 1] = 0.0;

2.二維理想高通濾波器

//if(tempd <= d0)

//((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2] = 0.0;

//   ((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2 + 1] = 0.0;

//else

//((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2] = 1.0;

//   ((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2 + 1] = 0.0;

階巴特沃思高通濾波器

/*tempd = 1 / (1 + pow(d0 / tempd, 2 * 2));

((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2] = tempd;

((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2 + 1] = 0.0;*/

//4.增長率為2二維指數高通濾波器

tempd = exp(-pow(d0 / tempd, 2));

((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2] = tempd;

((double*)(h_mat->data.ptr + h_mat->step * i))[j * 2 + 1] = 0.0;

}}

cvmulspectrums(src, h_mat, src, cv_dxt_rows);

cvreleasemat(&h_mat);

}int main()

opencv 高通濾波器

高通濾波器 高通濾波器 high pass filter,hpf 是檢測影象的某個區域,然後根據畫素與周圍畫素的亮度差值來提公升 boost 該畫素的亮度的濾波器。高通濾波器是根據畫素與鄰近畫素的亮度差值來提公升該畫素的亮度。低通濾波器 low pass filter,lpf 則是在畫素與周圍畫素的...

論高通濾波器,帶阻濾波器,陷波濾波器

首先,對一副影象進行如下二維傅利葉變換。我們將u 0和v 0帶上式,我們可以得到如下式子。根據上式,可以到f 0,0 的值是非常大的。這裡,我們將 f 0,0 稱為直流分量,直流分量比其他的成分要大好幾個數量級。所以,這也就是傅利葉譜為什麼需要使用對數變換才能看清楚的原因。這裡,對於高通濾波器而言,...

濾波器實現

基於matlab內建函式的fir設計。功能 設計標準頻率響應的基於窗函式的fir濾波器。語法 說明 fir1函式可以實現加窗線形相位fir數字濾波器設計,它可以設計出標準的低通 高通 帶通和帶阻濾波器.當wn w1 w2 時,fir1函式可得到帶通濾波器,其通帶為w1 w w2.在設計高通和帶阻濾波...