πŸ“˜ Programming 92

[μ˜μƒ 처리] νšŒμ„  처리의 원리와 경계 λΆ€λΆ„ 처리

ν™”μ†Œ μ˜μ—­ 처리 디지털 μ˜μƒμ²˜λ¦¬ μ‹œμŠ€ν…œμ€ μ„ ν˜• μ‹œλΆˆλ³€ μ‹œμŠ€ν…œμ΄λ―€λ‘œ, 이에 λ”°λ₯Έ κ²°κ³ΌλŠ” νšŒμ„  κΈ°λ²•μœΌλ‘œ 얻을 μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. ​ νšŒμ„  κΈ°λ²•μœΌλ‘œ μƒμ„±λ˜λŠ” μƒˆλ‘œμš΄ ν™”μ†Œ 값은 μ΄μ›ƒν•œ ν™”μ†Œ κ°’κ³Ό λŒ€μ‘ν•˜λŠ” νšŒμ„  마슀크의 κ°€μ€‘μΉ˜λ₯Ό κ³±ν•œ λ’€ κ³±ν•œ 값을 λ”ν•΄μ„œ μƒμ„±ν•©λ‹ˆλ‹€. ​ κ°€μ€‘μΉ˜λŠ” μž‘μ€ 행렬인 νšŒμ„  마슀크(νšŒμ„  컀널)둜 κ΅¬μ„±λ©λ‹ˆλ‹€. 2차원 행렬이고, ν¬κΈ°λŠ” 무쑰건 ν™€μˆ˜ X ν™€μˆ˜ μ—¬μ•Όλ§Œ, 이 ν–‰λ ¬μ˜ 쀑앙 μš”μ†Œ μœ„μΉ˜κ°€ 좜λ ₯ ν™”μ†Œμ˜ μœ„μΉ˜μ— ν•΄λ‹Ήλ©λ‹ˆλ‹€. ​ μ˜μƒμ˜ νšŒμ„  처리λ₯Ό μœ„ν•΄ νšŒμ„  λ§ˆμŠ€ν¬κ°€ μ΄λ™ν•˜λ©΄μ„œ μˆ˜ν–‰λ©λ‹ˆλ‹€. μ˜μƒμ˜ μ™Όμͺ½ μƒλ‹¨μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ λκΉŒμ§€ μ΄λ™ν•˜λ©΄, ν•œμΉΈ λ‚΄λ €κ°€ λ‹€μ‹œ μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•˜λ©° μˆ˜ν–‰ν•©λ‹ˆλ‹€. νšŒμ„  마슀크 νŠΉμ§• νšŒμ„  λ§ˆμŠ€ν¬λŠ” 각 λ°©ν–₯에 μžˆλŠ” 같은 수의 이웃 ν™”μ†Œμ— κΈ°λ°˜μ„ 두고 μƒˆλ‘œμš΄ ν™”μ†Œ 값을..

[μ˜μƒ 처리] νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” (Histogram Specification)

νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” (Histogram Specification) μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨μ„ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λ²•μž…λ‹ˆλ‹€. νžˆμŠ€ν† κ·Έλž¨ μ •ν•©(Histogram Matching)이라고도 ν•©λ‹ˆλ‹€. ​ λͺ…μ•” λŒ€λΉ„λ₯Ό κ°œμ„ ν•˜λŠ” 것은 νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™”μ™€ κ°™μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, νŠΉμ • 뢀뢄을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ„ μ΄μš©ν•œ μ •ν•©μœΌλ‘œ 일뢀 μ˜μ—­μ—μ„œλ§Œ λͺ…μ•” λŒ€λΉ„λ₯Ό κ°œμ„ ν•œλ‹€λŠ” 점이 ν‰ν™œν™”μ™€ λ‹€λ¦…λ‹ˆλ‹€! νžˆμŠ€ν† κ·Έλž¨ λͺ…μ„Έν™” κ³Όμ • 1) μž…λ ₯ μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨ 생성 ​ ​ 2) μž…λ ₯ μ˜μƒ ν‰ν™œν™” ​ ​ 3) μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™” ​ ​ 4) ν‰ν™œν™”λœ μ›ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ„ λ‹€μ‹œ μ—­ν‰ν™œν™” μ—­ν‰ν™œν™”λŠ” ν‰ν™œν™”μ™€ λ°˜λŒ€λ‘œ μ •κ·œν™”λœ λˆ„μ ν•©μ΄ λͺ…도 값이 되고, λͺ…도 값은 μ—­ν‰ν™œν™” 값이 λ©λ‹ˆλ‹€. μ—­ν‰ν™œν™” 값이 μ—­ν•¨μˆ˜λ‘œμ„œ λ£©μ—…ν…Œμ΄λΈ”(..

[μ˜μƒ 처리] ν™”μ†Œ μ˜μ—­ 처리의 ν™œμš© ( 엠보싱, λΈ”λŸ¬λ§, 샀프닝, 경계선 κ²€μΆœ)

ν™”μ†Œ μ˜μ—­ 처리 μž…λ ₯ ν™”μ†Œμ™€ κ·Έ μ£Όμœ„μ˜ ν™”μ†Œ 값을 ν•¨κ»˜ κ³ λ €ν•˜μ—¬ ν™”μ†Œ 값을 λ³€κ²½ν•˜λŠ” 곡간 μ˜μ—­ μ—°μ‚°μž…λ‹ˆλ‹€. ν™”μ†Œμ˜ 원 κ°’κ³Ό μœ„μΉ˜λ₯Ό λ°”νƒ•μœΌλ‘œ ν™”μ†Œ 값을 λ³€κ²½ν•˜λŠ” ν™”μ†Œ 점 μ²˜λ¦¬μ™€ λ‹€λ₯Έ κΈ°μˆ μž…λ‹ˆλ‹€. Output_pixel[x, y] : νšŒμ„  처리둜 좜λ ₯ν•œ ν™”μ†Œ I[m, n] : μž…λ ₯ μ˜μƒμ˜ ν™”μ†Œ M[m, n] : μž…λ ₯ μ˜μƒμ˜ ν™”μ†Œμ— λŒ€μ‘ν•˜λŠ” κ°€μ€‘μΉ˜( 마슀크 κ°’ ) ​ λ§ˆμŠ€ν¬λŠ” μž…λ ₯ μ˜μƒμ˜ ν™”μ†Œμ˜ μˆ˜λž‘ κ°™κ³ , 각각의 μœ„μΉ˜μ˜ κ°€μ€‘μΉ˜λ₯Ό λ§ν•©λ‹ˆλ‹€. 이런 λ§ˆμŠ€ν¬κ°€ 적용된 μ˜μƒμ„ νšŒμ„  마슀크(Convolution Mask)라고 ν•©λ‹ˆλ‹€. ​ ν™”μ†Œ μ˜μ—­ μ²˜λ¦¬λŠ” νšŒμ„  기법(Convolution Technique)을 μ‚¬μš©ν•©λ‹ˆλ‹€. νšŒμ„  기법을 μ‚¬μš©ν•˜λŠ” νšŒμ„  처리(Convolution Processing)λŠ” μ›μ‹œ ν™”μ†Œμ™€ μ΄μ›ƒν•˜λŠ” ..

[μ˜μƒ 처리] νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™” (Histogram Equalized)

νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™” (Histogram Equalized) μ–΄λ‘‘κ²Œ 촬영된 μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨μ„ μ‘°μ ˆν•˜μ—¬ λͺ…μ•” 뢄포가 λΉˆμ•½ν•œ μ˜μƒμ„ κ· μΌν•˜κ²Œ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ—­κ΄‘μœΌλ‘œ 찍힌 사진을 밝게 ν•˜κ³  μ‹Άμ„λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. ​ μ˜μƒμ˜ 밝기 뢄포λ₯Ό μž¬λΆ„λ°°ν•˜μ—¬ λͺ…μ•” λŒ€λΉ„λ₯Ό μ΅œλŒ€ν™”ν•˜κ³ , λͺ…μ•” λŒ€λΉ„ 쑰정을 μžλ™μœΌλ‘œ μˆ˜ν–‰ν•˜κ²Œλ” ν•©λ‹ˆλ‹€. (단, 각 λͺ…μ•” λΉˆλ„λŠ” λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€) ​ κ²€μΆœ νŠΉμ„±μ΄ 쒋은 μ˜μƒλ§Œ 좜λ ₯ν•˜μ§€λŠ” μ•Šμ§€λ§Œ μ˜μƒμ˜ κ²€μΆœ νŠΉμ„±μ„ 증가 μ‹œν‚΅λ‹ˆλ‹€. νžˆμŠ€ν† κ·Έλž¨ ν‰ν™œν™” κ³Όμ • 1) 0λΆ€ν„° i κΉŒμ§€μ˜ λͺ…μ•” κ°’μ˜ λΉˆλ„ 수λ₯Ό μΈ‘μ •ν•˜μ—¬ νžˆμŠ€ν† κ·Έλž¨ 생성 κ³„μ‚°ν•œ νžˆμŠ€ν† κ·Έλž¨μ„ 보면 μ „μ²΄μ μœΌλ‘œ μ™Όμͺ½μœΌλ‘œ 편ν–₯λ˜μ–΄ μžˆλ‹€λŠ” 사싀을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 자, 그럼 이 μ˜μƒμ„ 였λ₯Έμͺ½μœΌλ‘œ νŽΌμΆ°μ€˜μ•Ό ν•©λ‹ˆλ‹€. ​ 2) 0λΆ€ν„° i κΉŒμ§€μ˜ λˆ„μ  λΉˆλ„ ..

[μ˜μƒ 처리] 디지털 μ˜μƒμ˜ νžˆμŠ€ν† κ·Έλž¨ (Histogram)

νžˆμŠ€ν† κ·Έλž¨ (Histogram) λ°μ΄ν„°μ˜ νŠΉμ§•μ„ ν•œ λˆˆμ— μ•Œμ•„λ³Ό 수 μžˆλ„λ‘ 데이터λ₯Ό λ§‰λŒ€κ·Έλž˜ν”„ λͺ¨μ–‘μœΌλ‘œ λ‚˜νƒ€λ‚Έ κ²ƒμž…λ‹ˆλ‹€. ​ μž…λ ₯ μ˜μƒμ„ νžˆμŠ€ν† κ·Έλž¨μœΌλ‘œ λ§Œλ“œλŠ” 과정을 κ·Έλ¦° κ·Έλ¦Όμž…λ‹ˆλ‹€. (a)λŠ” 16개의 ν™”μ†Œλ‘œ κ΅¬μ„±λ˜μ–΄μžˆκ³ , ν™”μ†Œ λΉ„νŠΈ μˆ˜κ°€ 3λΉ„νŠΈλΌμ„œ λͺ…도λ₯Ό 8κΉŒμ§€ ν‘œν˜„ν•  수 μžˆλŠ” 디지털 μ˜μƒμž…λ‹ˆλ‹€. νžˆμŠ€ν† κ·Έλž¨μ„ 톡해 μž…λ ₯ μ˜μƒμ˜ λͺ…도 값이 골고루 λΆ„ν¬λ˜μ–΄ μžˆλ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. ​ νžˆμŠ€ν† κ·Έλž¨μ„ 톡해 μ˜μƒμ˜ νŠΉμ§•μ„ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‚°μˆ  μ—°μ‚° - νžˆμŠ€ν† κ·Έλž¨ 이동 (Shifting) 1) λ§μ…ˆ μ—°μ‚° λͺ…도 값을 μ¦κ°€μ‹œμΌœ μ˜μƒμ„ λ°μ•„μ§€λ―€λ‘œ, νžˆμŠ€ν† κ·Έλž¨μ˜ κΈ°λ‘₯이 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€. ​ 2) λΊ„μ…ˆ μ—°μ‚° λͺ…도 값을 κ°μ†Œμ‹œμΌœ μ˜μƒμ„ μ–΄λ‘‘κ²Œν•˜λ―€λ‘œ, νžˆμŠ€ν† κ·Έλž¨ κΈ°λ‘₯이 μ™Όμͺ½μœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€. ​ 3) κ³±μ…ˆ μ—°μ‚°..