頻率域濾波 5 自定義濾波

2021-09-24 10:04:32 字數 2716 閱讀 6950

//快速傅利葉變換

void fft2image(inputarray _src, outputarray _dst)

//求傅利葉變換的幅度譜 amplitude spectrum

void amplitudespectrum(inputarray _srcfft, outputarray _dstspectrum)

//傅利葉譜的灰度級顯示

mat grayspectrum(mat spectrum)

//求相位譜 phase spectrum

mat phasespectrum(mat _srcfft)

} return phase;

}//自定義濾波器

bool drawing_box = false;

point downpoint;

rect rectfilter;

bool gotrectfilter = false;

void mouserecthandler(int event, int x, int y, int, void*)

//滑鼠移到到 downpoint 的右上角

if (x >= downpoint.x && y <= downpoint.y)

//滑鼠移動到 downpoint 的左上角

if (x <= downpoint.x && y <= downpoint.y)

//滑鼠移動到 downpoint 的左下角

if (x <= downpoint.x && y >= downpoint.y)

}break;

//鬆開滑鼠左鍵

case cv_event_lbuttonup:

drawing_box = false;

gotrectfilter = true;

break;

default:

break; }}

//自定義濾波器

mat self_filter(mat &src, mat &f, mat &spectrum, point maxloc)

//自定義傅利葉變換的傅利葉譜

amplitudespectrum(f_selffilter, fselfspectrum);

//自定義傅利葉譜的灰度級的顯示

fselfspectrum = grayspectrum(fselfspectrum);

/* -- 第

七、八步:對自定義傅利葉變換執行傅利葉逆變換,並只取實部 -- */

dft(f_selffilter, result, dft_scale + dft_inverse + dft_real_output);

/* -- 第九步:同乘以(-1)^(x+y) -- */

for (int r = 0; r < result.rows; r++) }

//注意將結果轉換 cv_8u 型別

result.convertto(result, cv_8uc1, 1.0, 0);

/* -- 第十步:擷取左上部分,大小等於輸入影象的大小 --*/

result = result(rect(0, 0, src.cols, src.rows)).clone();

return result;

}void main()

} /* -- 第

三、四步:補零和快速傅利葉變換 -- */

mat f;//影象的快速傅利葉變換

fft2image(fi, f);

//傅利葉譜

mat amplspec;

amplitudespectrum(f, amplspec);

//傅利葉譜的灰度級顯示

mat spectrum = grayspectrum(amplspec);

//找到傅利葉譜的最大值的座標

point maxloc;

minmaxloc(spectrum, null, null, null, &maxloc);

mat result;

//低通

//result = lpfilter(image, f, maxloc, 0, 25);

//高通

//result = ihpfilter(image, f, maxloc, 0, 25);

//帶阻

//result = brfilter(image, f, maxloc, 0, 50, 40);

//帶通

//result = bpfilter(image, f, maxloc, 0, 50, 40);

//自定義濾波器

頻率域濾波 2 高通濾波

快速傅利葉變換 void fft2image inputarray src,outputarray dst 求傅利葉變換的幅度譜 amplitude spectrum void amplitudespectrum inputarray srcfft,outputarray dstspectrum 傅...

頻率域濾波 3 帶通濾波

快速傅利葉變換 void fft2image inputarray src,outputarray dst 求傅利葉變換的幅度譜 amplitude spectrum void amplitudespectrum inputarray srcfft,outputarray dstspectrum 傅...

PIE Basic 自定義濾波

1.功能概述 pie basic軟體自定義濾波工具可以根據需要自定義濾波模板,並根據定義的濾波器進行影象的濾波處理。支援進行平滑濾波器的設計。2.基本概念 自定義濾波器是指使用者根據需要設計濾波器進行影象的平滑或銳化處理。自定義的濾波器分為平滑濾波器和銳化濾波器。平滑濾波器模板係數的設計原則 平滑濾...