ram2 ๐Ÿš—

Spatial Filtering ๋ณธ๋ฌธ

๐ŸŒƒ computer vision

Spatial Filtering

coram22 2022. 10. 8. 17:49
728x90
๋ฐ˜์‘ํ˜•
728x90

spatial filtering ์ด๋ž€?

-> spatial filter๋ฅผ ํ™œ์šฉํ•ด์„œ ์ „์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ.

 

spatial filtering์˜ ์ข…๋ฅ˜

1. Averaging filter

- ์ฃผ๋ณ€ ๊ฐ’์˜ ํ‰๊ท ์œผ๋กœ ๋Œ€์ฒด ์‹œํ‚จ๋‹ค.

- random noise๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

- image๊ฐ€ ํ๋ฆฟํ•ด์ง„๋‹ค. (blurs an image)

 

[์‚ฌ์šฉ ์˜ˆ]

ํ˜•์‹ : blur( input image, output image, size of kernel);

blur( image, result, Size(5,5) );

 

 

2. Gaussian filter

- ๊ฐ€์ค‘์น˜ ํ‰๊ท ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ๊ฐ€์ค‘์น˜๋ฅผ gaussian filter๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ๋‹ค.

 

[์‚ฌ์šฉ ์˜ˆ]

GaussianBlur( image, image, size of kernel, 0, 0, BORDER_DEFAULT);

 

 

* averaging filter๊ณผ gaussian filter๋Š” ์„œ๋กœ ๋น„์Šทํ•˜๋‹ค.

- mask ํฌ๊ธฐ๊ฐ€ ์ž‘์„์ˆ˜๋ก ์ž‘์€ ์žก์Œ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

- ํฐ ์žก์Œ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฐ mask๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ณ„์‚ฐ๋Ÿ‰์ด ๋งŽ์•„์ง„๋‹ค.

 

 

3. Sharpening

- ๋ฐ๊ธฐ๊ฐ’ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๋ถ€๋ถ„์„ ๋” ๊ฐ–์˜ค์‹œํ‚ด์œผ๋กœ์จ ๋ณด๋‹ค edge์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.

- ๊ณต๊ฐ„ domain์—์„œ์˜ ๋ฏธ๋ถ„์„ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ sharpening์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

- ๊ฐ’์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์„ sharpening ํ•œ๋‹ค.

   - sharpening ํ•œ๋‹ค๋Š” ๊ฒƒ : ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ ํฐ ๋ถ€๋ถ„์˜ ๊ฐ„๊ฒฉ์„ ๋” ํฌ๊ฒŒ ๋งŒ๋“ ๋‹ค. 

- ๋ณดํ†ต 2์ฐจ ๋ฏธ๋ถ„์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  1) 2์ฐจ ๋ฏธ๋ถ„์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•œ๋‹ค.

  2) ์›๋ณธ ์ด๋ฏธ์ง€์™€ ๋ฏธ๋ถ„ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋”ํ•œ๋‹ค.

- unsharp mask : ์ด mask๋ฅผ ์“ฐ๋ฉด ๊ฐ’์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์ด ๋” ๊ฐ•์กฐ๋œ๋‹ค.

 

[์‚ฌ์šฉ ์˜ˆ]

Laplacian( image, laplacian, CV_16S, 1, 1, 0 ); // 2์ฐจ ๋ฏธ๋ถ„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
convertScaleAbs( laplacian, abs_laplacian ); // 8๋น„ํŠธ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
sharpening = abs_laplacian + image; //2์ฐจ ๋ฏธ๋ถ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์›๋ณธ ์ด๋ฏธ์ง€์— ๋”ํ•œ๋‹ค.

3-1. unsharp masking

[์‚ฌ์šฉ ์˜ˆ]

cvtColor( input, gray, COLOR_BGR2GRAY ); // ์ƒ‰์ƒ ๋ณ€ํ™˜
GaussianBlur( gray, blur, Size(5,5), 3 );
addWeighted( gray, 1.5, blur, -0.5, 0, sharp ); // ๊ฐ๊ฐ ๊ฐ€์ค‘์น˜ ์ง€์ •.

 

 

 

4. Median filter

- ์ค‘๊ฐ„๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. (ํ‰๊ท ๊ฐ’์ด๋ž‘ ๋‹ค๋ฅด๋‹ค!)

- m x m ํฌ๊ธฐ์˜ Filter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด m^2/2 ๋งŒํผ์˜ ์žก์Œ์„ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.

   ์ฆ‰, salt-and-pepper nosie(ํฐ์ƒ‰๊ณผ ๊ฒ€์€์ƒ‰ noise), random noise๋ฅผ ์—†์• ๋Š”๋ฐ ํšจ๊ณผ์ ์ด๋‹ค.

- blur ์—†์ด ์žก์Œ์„ ์—†์•จ ์ˆ˜ ์žˆ์œผ๋‚˜, ์—ฐ์‚ฐ๋Ÿ‰์ด ๋” ๋งŽ๊ณ , ํŠน์ • noise์—์„œ ํšจ๊ณผ์ ์ด๋‹ค.

 

[์‚ฌ์šฉ ์˜ˆ]

medianBlur( image, mf1, 3 ); // medianblur ์ ์šฉ
imshow( "MedianFiltered", mf1 ); // ๊ฒฐ๊ณผ ์ถœ๋ ฅ
728x90
๋ฐ˜์‘ํ˜•

'๐ŸŒƒ computer vision' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Image feature matching  (0) 2022.10.30
Histogram Equalization  (0) 2022.10.08
Intensity transformation  (2) 2022.10.08
Line detection  (0) 2022.09.29
Edge Detection  (0) 2022.09.27