Home
Dekay πŸƒ
Cancel

OpenCV - 33. νžˆμŠ€ν† κ·Έλž¨

νžˆμŠ€ν† κ·Έλž¨(Histogram) νžˆμŠ€ν† κ·Έλž¨μ΄λž€ λ„μˆ˜ λΆ„ν¬ν‘œ 쀑 ν•˜λ‚˜λ‘œ λ°μ΄ν„°μ˜ 뢄포λ₯Ό λͺ‡ 개의 κ΅¬κ°„μœΌλ‘œ λ‚˜λˆ„κ³  각 ꡬ간에 μ†ν•˜λŠ” 데이터λ₯Ό μ‹œκ°μ μœΌλ‘œ ν‘œν˜„ν•œ λ§‰λŒ€κ·Έλž˜ν”„μž…λ‹ˆλ‹€. μ΄λ―Έμ§€μ—μ„œ μ‚¬μš©ν•˜λŠ” νžˆμŠ€ν† κ·Έλž¨μ€ X 좕을 ν”½μ…€μ˜ κ°’μœΌλ‘œ μ‚¬μš©ν•˜κ³  Y 좕을 ν•΄λ‹Ή ν”½μ…€μ˜ 개수둜 ν‘œν˜„ν•©λ‹ˆλ‹€. μ΄λ―Έμ§€μ˜ 픽셀값을 νžˆμŠ€ν† κ·Έλž¨μœΌλ‘œ ν‘œν˜„ν•˜λ©΄ μ΄λ―Έμ§€μ˜ νŠΉμ„±μ„ μ‰½κ²Œ 확인...

OpenCV - 32. λΉ„νŠΈ μ—°μ‚°

λΉ„νŠΈ μ—°μ‚°(Bitwise) λΉ„νŠΈ 연산은 ν•˜λ‚˜ λ˜λŠ” 두 이미지에 λŒ€ν•΄ λΉ„νŠΈ 연산을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. Numpy 클래슀의 λΉ„νŠΈ μ—°μ‚°κ³Ό λ™μΌν•œ μ˜λ―Έμ™€ κ²°κ³Όλ₯Ό κ°–μŠ΅λ‹ˆλ‹€. λ˜ν•œ, λΉ„νŠΈ μ—°μ‚° ν‘œν˜„(&, | λ“±)을 톡해 Mat 클래슀 κ°„μ˜ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import numpy as np import cv2 src = ...

OpenCV - 31. 이미지 μ—°μ‚° - (2)

이미지 μ—°μ‚°(Image Calculation) 이미지 연산은 ν•˜λ‚˜ λ˜λŠ” λ‘˜ μ΄μƒμ˜ 이미지에 λŒ€ν•΄ μˆ˜ν•™μ μΈ 연산을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. Numpy 클래슀의 λ°°μ—΄ μ—°μ‚°κ³Ό λ™μΌν•˜κ±°λ‚˜ λΉ„μŠ·ν•œ μ˜λ―Έμ™€ κ²°κ³Όλ₯Ό κ°–μŠ΅λ‹ˆλ‹€. λ˜ν•œ, λŒ€μˆ˜μ  ν‘œν˜„(+, - λ“±)을 톡해 Mat 클래슀 κ°„μ˜ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import numpy as np ...

OpenCV - 30. 이미지 μ—°μ‚° - (1)

이미지 μ—°μ‚°(Image Calculation) 이미지 연산은 ν•˜λ‚˜ λ˜λŠ” λ‘˜ μ΄μƒμ˜ 이미지에 λŒ€ν•΄ μˆ˜ν•™μ μΈ 연산을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. Numpy 클래슀의 λ°°μ—΄ μ—°μ‚°κ³Ό λ™μΌν•˜κ±°λ‚˜ λΉ„μŠ·ν•œ μ˜λ―Έμ™€ κ²°κ³Όλ₯Ό κ°–μŠ΅λ‹ˆλ‹€. λ˜ν•œ, λŒ€μˆ˜μ  ν‘œν˜„(+, - λ“±)을 톡해 Mat 클래슀 κ°„μ˜ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import numpy as np ...

OpenCV - 29. 원 κ²€μΆœ

원 κ²€μΆœ(Circle Detection) 원 κ²€μΆœ μ•Œκ³ λ¦¬μ¦˜λ„ ν—ˆν”„ λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜ 쀑 ν•˜λ‚˜μΈ ν—ˆν”„ 원 λ³€ν™˜(Hough Circle Transform) μ•Œκ³ λ¦¬μ¦˜μ„ ν™œμš©ν•΄ 원을 κ²€μΆœν•©λ‹ˆλ‹€. ν—ˆν”„ 원 λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜μ€ μ•žμ„œ 배운 ν—ˆν”„ μ„  λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜κ³Ό λΉ„μŠ·ν•œ λ°©μ‹μœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€. ν—ˆν”„ 원 λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜μ€ 2차원이 μ•„λ‹Œ 3차원 λˆ„μ‚° ν‰λ©΄μœΌλ‘œ κ²€μΆœν•©λ‹ˆλ‹€...

OpenCV - 28. 직선 κ²€μΆœ

직선 κ²€μΆœ(Line Detection) 직선 κ²€μΆœ μ•Œκ³ λ¦¬μ¦˜μ€ ν—ˆν”„ λ³€ν™˜(Hough Transform)을 ν™œμš©ν•΄ 직선을 κ²€μΆœν•©λ‹ˆλ‹€. ν—ˆν”„ λ³€ν™˜μ€ μ΄λ―Έμ§€μ—μ„œ 직선을 μ°ΎλŠ” κ°€μž₯ 보편적인 μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. μ΄λ―Έμ§€μ—μ„œ μ„ κ³Ό 같은 λ‹¨μˆœν•œ ν˜•νƒœλ₯Ό λΉ λ₯΄κ²Œ κ²€μΆœν•  수 있으며, 직선을 μ°Ύμ•„ μ΄λ―Έμ§€λ‚˜ μ˜μƒμ„ λ³΄μ •ν•˜κ±°λ‚˜ λ³΅μ›ν•©λ‹ˆλ‹€. ν—ˆν”„ μ„  λ³€ν™˜μ€ 이미지 λ‚΄μ˜ μ–΄...

OpenCV - 27. λͺ¨ν΄λ‘œμ§€ μ—°μ‚°

λͺ¨ν΄λ‘œμ§€ μ—°μ‚°(Morphological Calculate) λͺ¨ν΄λ‘œμ§€ μ—°μ‚°(Perspective Calculate)은 λͺ¨ν΄λ‘œμ§€ λ³€ν™˜μ˜ 팽창(dilation)κ³Ό 침식(erosion)을 κΈ°λ³Έ μ—°μ‚°μœΌλ‘œ μ‚¬μš©ν•΄ κ³ κΈ‰ ν˜•νƒœν•™μ„ μ μš©ν•˜λŠ” λ³€ν™˜ μ—°μ‚°μž…λ‹ˆλ‹€. μž…λ ₯ 이미지가 μ΄μ§„ν™”λœ 이미지라면 팽창과 침식 μ—°μ‚°μœΌλ‘œλ„ μš°μˆ˜ν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, ...

OpenCV - 26. λͺ¨ν΄λ‘œμ§€ λ³€ν™˜

λͺ¨ν΄λ‘œμ§€ λ³€ν™˜(Morphological Transformation) λͺ¨ν΄λ‘œμ§€ λ³€ν™˜(Perspective Transformation)은 μ˜μƒμ΄λ‚˜ 이미지λ₯Ό ν˜•νƒœν•™μ  κ΄€μ μ—μ„œ μ ‘κ·Όν•˜λŠ” 기법을 μ˜λ―Έν•©λ‹ˆλ‹€. λͺ¨ν΄λ‘œμ§€ λ³€ν™˜μ€ 주둜 μ˜μƒ λ‚΄ ν”½μ…€κ°’ λŒ€μ²΄μ— μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό μ‘μš©ν•΄μ„œ λ…Έμ΄μ¦ˆ 제거, μš”μ†Œ κ²°ν•© 및 뢄리, 강도 피크 κ²€μΆœ 등에 μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€...

OpenCV - 25. λͺ¨λ©˜νŠΈ

λͺ¨λ©˜νŠΈ(Moments) μœ€κ³½μ„ (contour)μ΄λ‚˜ 이미지(array)의 0μ°¨ λͺ¨λ©˜νŠΈλΆ€ν„° 3μ°¨ λͺ¨λ©˜νŠΈκΉŒμ§€ κ³„μ‚°ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 곡간 λͺ¨λ©˜νŠΈ(spatial moments), 쀑심 λͺ¨λ©˜νŠΈ(central moments), μ •κ·œν™”λœ 쀑심 λͺ¨λ©˜νŠΈ(normalized central moments), μ§ˆλŸ‰ 쀑심(mass center) 등을 계산할 수 있슡...

OpenCV - 24. 블둝 껍질

블둝 껍질(Convex Hull) μœ€κ³½μ„ (points, contours)의 경계면을 λ‘˜λŸ¬μ‹ΈλŠ” λ‹€κ°ν˜•μ„ κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. λ°˜ν™˜λ˜λŠ” κ²°κ³ΌλŠ” μœ€κ³½μ„  κ²€μΆœ 결과와 λ™μΌν•œ ν˜•μ‹μ„ 띄며, μŠ€ν¬λžœμŠ€ν‚€(Sklansky) μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•΄ μž…λ ₯된 μ’Œν‘œλ“€μ˜ λ³Όλ‘ν•œ 외곽을 μ°ΎμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import cv2 src = cv2.imread("I...