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
728x90
๋ฐ˜์‘ํ˜•
728x90

intensity transformation๋ž€? 

 โžก๏ธ ์ด๋ฏธ์ง€์˜ ๋ฐ๊ธฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ.

 

 

 

intensity transformation์˜ ์ข…๋ฅ˜

intensity transformation์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

1. negative 

 

- ์ด๋ฏธ์ง€์˜ ์–ด๋‘์šด ์˜์—ญ์„ ๋ฐ์€ ์˜์—ญ์œผ๋กœ, ์ด๋ฏธ์ง€์˜ ๋ฐ์€ ์˜์—ญ์„ ์–ด๋‘์šด ์˜์—ญ์œผ๋กœ ๋ฐ˜์ „ ์‹œํ‚ค๋Š” ๊ฒƒ.

 

[๊ณต์‹] 

โžก๏ธ L - 1 - r

r : input, ์˜์ƒ์˜ intensity level์ด [0, L-1] ์‚ฌ์ด์ธ ๊ฒฝ์šฐ

 

 

 

2. log transformation

- ์–ด๋‘์šด ์˜์—ญ์— ์ˆจ์–ด ์žˆ๋Š” detail์„ ๋” ์„ ๋ช…ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์— ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

- ๋‹จ์ˆœํžˆ ์˜์ƒ์„ ๋ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

- ๋ฐ์€ ๋ถ€๋ถ„์˜ detail์€ ์ค„์–ด๋“ค๊ณ , ์–ด๋‘์šด ์˜์—ญ์˜ detail์€ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

- ์–ด๋‘์šด ๋ถ€๋ถ„์˜ contrast๋ฅผ ๋†’์—ฌ์„œ ๋” ์„ ๋ช…ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

[๊ณต์‹] 

โžก๏ธ C log (1+r)

c: ์ž„์˜์˜ ์ƒ์ˆ˜, r : input

 

 

3. gamma transforamtion

- Γ(gamma) ์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋ฐ์€ ๋ถ€๋ถ„์˜ detail์„ ์˜ฌ๋ฆด ์ˆ˜๋„ ์žˆ๊ณ , ์–ด๋‘์šด ๋ถ€๋ถ„์˜ detail์„ ์˜ฌ๋ฆฌ ์ˆ˜ ์žˆ๋‹ค.

- Γ > 1์ธ ๊ฒฝ์šฐ : ๋ฐ์€ ๋ถ€๋ถ„์˜ detail์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

- Γ < 1์ธ ๊ฒฝ์šฐ : ์–ด๋‘์šด ๋ถ€๋ถ„์˜ detail์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

- Γ = 1์ธ ๊ฒฝ์šฐ : input ์ด๋ฏธ์ง€์™€ output ์ด๋ฏธ์ง€๊ฐ€ ๋™์ผํ•˜๋‹ค.

 

[๊ณต์‹] 

โžก๏ธ Cr^ Γ

c: ์ž„์˜์˜ ์ƒ์ˆ˜, r : input,  Γ: gamma ๊ฐ’.

 

 

 

[์ ์šฉ ๊ฒฐ๊ณผ]

 

728x90
๋ฐ˜์‘ํ˜•

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

Image feature matching  (0) 2022.10.30
Histogram Equalization  (0) 2022.10.08
Spatial Filtering  (0) 2022.10.08
Line detection  (0) 2022.09.29
Edge Detection  (0) 2022.09.27
728x90
๋ฐ˜์‘ํ˜•
728x90

Edge pixels : ๋ฐ๊ธฐ๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ๊ฒƒ

 

โœ…  ์–ด๋–ป๊ฒŒ detect edges๋ฅผ ํ•˜๋Š”๊ฐ€?

[1์ฐจ์›]

1์ฐจ ๋ฏธ๋ถ„์„ ํ•œ๋‹ค. 

์ฆ‰, ๋ฏธ๋ถ„ ํ–ˆ์„ ๋•Œ 0์ด ์•„๋‹Œ ํŠน์ •ํ•œ ๋ถ€๋ถ„์„ ์ฐพ์•„์„œ ๊ฒ€์ถœํ•˜๋Š” ๊ฒƒ.

 

[2์ฐจ์›]

image gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

grad(f) = x์ถ• ๋ฐฉํ–ฅ์œผ๋กœ์˜ ๋ฏธ๋ถ„๊ฐ’๊ณผ y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ์˜ ๋ฏธ๋ถ„ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

* gradient vector์™€ edge direction์€ 90๋„ ์ฐจ์ด.

* gradient vector๋Š” ํ•ด๋‹น ์œ„์น˜์—์„œ ๋ณ€ํ™”๋Ÿ‰์ด ๊ฐ€์žฅ ๊ธ‰๊ฒฉํ•œ ๋ฐฉํ–ฅ.

 

[noise๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ]

noise๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, edge detection์ด ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— filtering์„ ์‚ฌ์šฉํ•ด์„œ noise๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

 

 

โœ…  Edge detection ๋ฐฉ๋ฒ•

1. Sobel operators

์ž๊ธฐ ์ž์‹ ๊ณผ ์ฃผ๋ณ€์˜ ์ฐจ์ด.

gradient๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, ์—ฐ์‚ฐ์„ ์œ„ํ•ด์„œ๋Š” spatial filter๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

filtering์„ ๋จผ์ € ํ•˜๊ณ  sobel operator๋ฅผ ์ ์šฉํ•˜๋ฉด filter๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์— ๋น„ํ•ด ์œค๊ณฝ์„ ์ด ๋šœ๋ ทํ•˜๊ฒŒ ๋ณด์ธ๋‹ค.

๋จผ์ €, gx(gradient x)์™€ gy(gradient y)๋ฅผ ๊ตฌํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์ ˆ๋Œ€๊ฐ’์„ ๋”ํ•˜๋ฉด M(x,y) ์ฆ‰, Magnitude๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

2. Canny Edge Detector

Sobel๋ณด๋‹ค ๋” ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

 

Algorithm

1. ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ƒ ๋‚ด ์žก์Œ์„ ์—†์•ค๋‹ค.

2. Sobel dedge mask๋ฅผ ์‚ฌ์šฉํ•ด์„œ gradient์˜ ํฌ๊ธฐ์™€ ๊ฐ๋„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

3. gradient ๋ฐฉํ–ฅ์œผ๋กœ ์ธ์ ‘ํ•œ ํ”ฝ์…€์„ ๋จผ์ € ์ฐพ๊ณ , nonmaxima suppression์„ ์ ์šฉํ•œ๋‹ค.

 

(nonmaxima suppression์ด๋ž€?)

๋‹ค์Œ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ, p5๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งŒ์•ฝ p2์™€ p8์˜ gradient magnitude๋ณด๋‹ค ์ž‘๋‹ค๋ฉด, p5๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. ์ฆ‰, 0์œผ๋กœ ๋งŒ๋“ ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด p5๋Š” edge๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์–ด์ง„๋‹ค.

๋งŒ์•ฝ P5๊ฐ€ p2, p8๋ณด๋‹ค gradient magnitude ๊ฐ’์ด ํฌ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ max๋งŒ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด nonmaxima suppressiondlek. 

 

4. double thresholding๊ณผ connectivity analysis๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋จผ์ €, ์‚ฌ์šฉ์ž ์ง€์ •์œผ๋กœ Th์™€ Tl์„ ์ •ํ•œ๋‹ค.

โžก๏ธ M(x,y) >= Th ์ธ ๊ฒฝ์šฐ, edge

โžก๏ธ M(x,y) < Tl ์ธ ๊ฒฝ์šฐ, non-edge

โžก๏ธ otherwise, ์ฆ‰, Th์™€ Tl ์‚ฌ์ด์˜ ๊ฐ’๋“ค

    ์ด ๊ฒฝ์šฐ, ๋งŒ์•ฝ edge๋ผ๊ณ  ํŒ์ •ํ•œ ๋ถ€๋ถ„๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด edge๋กœ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด non-edge๋กœ ๊ฐ„์ฃผํ•œ๋‹ค. 

 

 

Sobel edge์™€ Canny์˜ ์ฐจ์ด

โžก๏ธ  canny๋Š” Sobel์— ๋น„ํ•ด ์ ์€ ์ˆ˜์˜ ๋ถ€๋ถ„๋งŒ์„ edge๋กœ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

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

Image feature matching  (0) 2022.10.30
Histogram Equalization  (0) 2022.10.08
Spatial Filtering  (0) 2022.10.08
Intensity transformation  (2) 2022.10.08
Line detection  (0) 2022.09.29

+ Recent posts