Гаусово филтрирање има широку примену у области обраде слика. Користи се за смањење шума слике. У овом чланку ћемо генерисати а 2Д Гаусово језгро. 2Д Гаусово језгро следи доле дату Гаусову расподелу.
Г(к и)=фрац{1}{2пи сигма ^{2}}е^{-фрац{к^{2}+и^{2}}{2сигма ^{2}}}
Где је и растојање дуж вертикалне осе од почетка к је растојање дуж хоризонталне осе од почетка и ? је стандардна девијација.
Шта је Гаусово филтрирање?
Гаусово филтрирање је техника која се користи у обради слике за углађивање слика и смањење шума. Функционише применом ефекта замућења користећи математичку функцију која се зове Гаусова функција која даје већу тежину централним пикселима, а мању околним пикселима. Ово доводи до замућења природног изгледа које помаже у уклањању нежељених детаља попут зрна или малих артефаката. Гаусово филтрирање се широко користи као корак предобраде у задацима као што су препознавање објеката за детекцију ивица и побољшање слике, што олакшава алгоритмима да се фокусирају на важне карактеристике.
Имплементација у Ц++
C++// C++ program to generate Gaussian filter #include #include #include using namespace std; // Function to create Gaussian filter void FilterCreation(double GKernel[][5]) { // initialising standard deviation to 1.0 double sigma = 1.0; double r s = 2.0 * sigma * sigma; // sum is for normalization double sum = 0.0; // generating 5x5 kernel for (int x = -2; x <= 2; x++) { for (int y = -2; y <= 2; y++) { r = sqrt(x * x + y * y); GKernel[x + 2][y + 2] = (exp(-(r * r) / s)) / (M_PI * s); sum += GKernel[x + 2][y + 2]; } } // normalising the Kernel for (int i = 0; i < 5; ++i) for (int j = 0; j < 5; ++j) GKernel[i][j] /= sum; } // Driver program to test above function int main() { double GKernel[5][5]; FilterCreation(GKernel); for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) cout << GKernel[i][j] << 't'; cout << endl; } }
Излаз:
0.00296902 0.0133062 0.0219382 0.0133062 0.00296902
0.0133062 0.0596343 0.0983203 0.0596343 0.0133062
0.0219382 0.0983203 0.162103 0.0983203 0.0219382
0.0133062 0.0596343 0.0983203 0.0596343 0.0133062
0.00296902 0.0133062 0.0219382 0.0133062 0.00296902
Примене Гаусовог филтрирања у стварном свету
Гаусови филтери се користе у многим свакодневним технологијама за побољшати квалитет слике и извући корисне информације :
- Цомпутер Висион : Помаже у откривању ивица и облика смањујући шум пре примене алгоритама детекције.
- Медицал Имагинг : Користи се за изглађивање МРИ или ЦТ скенирања што олакшава идентификацију ткива и абнормалности.
- Детекција објеката : Припрема слике уклањањем ометања омогућавајући моделима да се фокусирају на кључне карактеристике.
- Алати за уређивање фотографија : Обично се користи за примену ефекти замућења
Поређење са другим филтерима
Ево како Гаусов филтер издваја се од осталих уобичајених филтера:
- Филтер оквира (просечан филтер) : Замагљује слику давањем једнака тежина на све околне пикселе. Гаусов филтер је бољи јер даје већа тежина до централних пиксела стварајући глаткије природније замућење.
- Медијан филтер : Замењује сваки пиксел са медијана оближњих вредности што је одлично за уклањање бука соли и бибера . За разлику од Гауссовог, он не замагљује слику толико, али може изобличити ивице.
- Билатерални филтер : Као Гаусов али и сматра интензитет пиксела очување разлика ивице при глађењу. Напреднији је, али и више рачунски тежак .
2Д вс 1Д Гаусово филтрирање
А 2Д Гаусов филтер може се разбити на два 1Д филтера — једна хоризонтална и једна вертикална. Ово се зове одвојивости и то значи да не морамо одједном да примењујемо комплетно 2Д језгро.
Зашто је важно:
Уместо да радимо тешке прорачуне са великим 2Д кернелом (нпр. 5×5), примењујемо 1Д кернел хоризонтално затим тхе исто језгро вертикално . Ово скраћује време израчунавања и даје исти резултат .
шта је корисничко име
Разматрање перформанси
Генерисање и примена а Гаусово језгро може бити рачунарски скупо посебно за велике слике или језгра.
- Временска сложеност :
- За језгро величине к × к примењено на ан н × н слика временска сложеност је О(н² × к²) .
- То је зато што свака операција пиксела укључује петљу преко целог кернела.
- Оптимизација – одвојиви филтери :
Гаусова језгра су одвојиви што значи да се 2Д филтер може пробити два 1Д филтера : једна хоризонтална и једна вертикална.- Ово смањује временску сложеност на О(н² × к) правећи га много брже за већа језгра.
Коришћење одвојивих филтера је уобичајен трик у системима из стварног света за убрзавање Гаусовог филтрирања без губитка квалитета.
Муст Реад
- Примените Гаусс филтер на слику помоћу Питхон-а
- Како генерисати 2-Д Гаусов низ користећи НумПи?
- Интеграција Гаусових функција
Закључак
Гаусово филтрирање је једноставна, али моћна техника за смањење шума и замућења слике користећи глатки пондерисани просек заснован на Гаусовој функцији. У овом чланку смо генерисали а 2Д Гаусово језгро и истраживао његову улогу у разним апликације у стварном свету попут компјутерског вида медицинског снимања и уређивања фотографија. Такође смо га упоредили са другим филтерима и разговарали о начинима да оптимизовати перформансе коришћењем одвојивих филтера. Свеукупно Гаусово филтрирање је а основни алат у обради слике помаже у побољшању квалитета слике и олакшава алгоритмима да се фокусирају на важне визуелне детаље.