Home
Dekay πŸƒ
Cancel

OpenCV - 23. μ½”λ„ˆ κ²€μΆœ

μ½”λ„ˆ κ²€μΆœ(Good Features To Track) μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ—μ„œ μ½”λ„ˆλ₯Ό κ²€μΆœν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. μ½”λ„ˆ κ²€μΆœ μ•Œκ³ λ¦¬μ¦˜μ€ μ •ν™•ν•˜κ²ŒλŠ” νŠΈλž˜ν‚Ή(Tracking) ν•˜κΈ° 쒋은 지점(νŠΉμ§•)을 μ½”λ„ˆλΌ λΆ€λ¦…λ‹ˆλ‹€. 꼭짓점은 νŠΈλž˜ν‚Ήν•˜κΈ° 쒋은 지점이 λ˜μ–΄ λ‹€κ°ν˜•μ΄λ‚˜ 객체의 꼭짓점을 κ²€μΆœν•˜λŠ” 데 μ‚¬μš©ν•©λ‹ˆλ‹€. 메인 μ½”λ“œ import cv2 src ...

OpenCV - 22. λ‹€κ°ν˜• 근사

λ‹€κ°ν˜• 근사(Approx Poly) μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ˜ μœ€κ³½μ μ„ μ••μΆ•ν•΄ λ‹€κ°ν˜•μœΌλ‘œ κ·Όμ‚¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ—μ„œ μœ€κ³½μ„ μ˜ 근사 λ‹€κ°ν˜•μ„ κ²€μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import cv2 src = cv2.imread("Image/21.png", cv2.IMREAD_COLOR) gray = cv2.cvtColor(sr...

OpenCV - 21. μœ€κ³½μ„  κ²€μΆœ

μœ€κ³½μ„ (Contour) μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ˜ μœ€κ³½μ„ (μ»¨νˆ¬μ–΄)을 κ²€μΆœν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ—μ„œ μ™Έκ³½κ³Ό λ‚΄κ³½μ˜ μœ€κ³½μ„ (μ»¨νˆ¬μ–΄)을 κ²€μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import cv2 src = cv2.imread("Image/20.png", cv2.IMREAD_COLOR) gray = cv2.cvtColor(src, cv2....

OpenCV - 20. 캑쳐 및 λ…Ήν™”

캑쳐 및 λ…Ήν™”(Capture & Record) μ˜μƒμ΄λ‚˜ 이미지λ₯Ό μΊ‘μ³ν•˜κ±°λ‚˜ λ…Ήν™”ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. μ˜μƒμ΄λ‚˜ 이미지λ₯Ό 연속적 λ˜λŠ” μˆœκ°„μ μœΌλ‘œ μΊ‘μ³ν•˜κ±°λ‚˜ λ…Ήν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 메인 μ½”λ“œ import datetime import cv2 capture = cv2.VideoCapture("/Image/3.mp4") fourcc = cv2...

OpenCV - 19. κΈ°ν•˜ν•™μ  λ³€ν™˜(Geometric Transformation)

κΈ°ν•˜ν•™μ  λ³€ν™˜(Geometric Perspective) κΈ°ν•˜ν•™μ  λ³€ν™˜(Geometric Transform)μ΄λž€ 이미지λ₯Ό μΈμœ„μ μœΌλ‘œ ν™•λŒ€, μΆ•μ†Œ, μœ„μΉ˜ λ³€κ²½, νšŒμ „, μ™œκ³‘ν•˜λŠ” λ“± μ΄λ―Έμ§€μ˜ ν˜•νƒœλ₯Ό λ³€ν™˜ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 이미지λ₯Ό κ΅¬μ„±ν•˜λŠ” ν”½μ…€ μ’Œν‘―κ°’μ˜ μœ„μΉ˜λ₯Ό μž¬λ°°μΉ˜ν•˜λŠ” κ³Όμ •μœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. κΈ°ν•˜ν•™μ  λ³€ν™˜μ€ 크게 μ•„ν•€ λ³€ν™˜(Affine T...

OpenCV - 18. λ„ν˜• 그리기(Drawing)

λ„ν˜• 그리기(Drawing) λ„ν˜• 그리기(Drawing)λŠ” μ˜μƒμ΄λ‚˜ 이미지 μœ„μ— κ·Έλž˜ν”½μ„ κ·Έλ € κ²€μΆœ κ²°κ³Όλ₯Ό μ‹œκ°μ μœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€. λ˜ν•œ, 이미지 μœ„μ— κ²€μΆœ κ²°κ³Όλ₯Ό μƒˆλ‘­κ²Œ κ·Έλ € 결괏값을 λ³€ν˜•ν•˜κ±°λ‚˜ λ³΄μ •ν•˜κΈ° μœ„ν•΄μ„œλ„ μ‚¬μš©ν•©λ‹ˆλ‹€ λ„ν˜• κ·Έλ¦¬κΈ°λŠ” 직선, μ‚¬κ°ν˜•, 원, λ‹€κ°ν˜• 등을 그릴 수 μžˆμŠ΅λ‹ˆλ‹€. λ„ν˜• κ·Έλ¦¬κΈ°λŠ” μ„ ν˜• νƒ€μž…(Line Types), λΉ„νŠΈ ...

OpenCV - 17. 채널 뢄리 및 병합(Channel Split & Merge)

채널 뢄리(Split) 및 병합(Merge) 채널 뢄리(Split)κ³Ό 병합(Merge)은 μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ˜ 색상 κ³΅κ°„μ˜ 채널을 λΆ„λ¦¬ν•˜κ±°λ‚˜ ν•©μΉ˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, BGR 색상 곡간을 B(Blue), G(Green), R(Red)둜 뢄리해 단일 채널을 κ°€μ§„ λ°°μ—΄λ‘œ λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΆ„λ¦¬λœ μ±„λ„μ˜ 값을 λ³€κ²½ν•˜κ±°λ‚˜ μˆœμ„œλ₯Ό λ³€κ²½ν•΄, ...

OpenCV - 16. λ°°μ—΄ 병합(Array Merge)

λ°°μ—΄ 병합(addWeighted) μ˜μƒμ΄λ‚˜ μ΄λ―Έμ§€μ—μ„œ 색상을 κ²€μΆœ ν•  λ•Œ, λ°°μ—΄ μš”μ†Œμ˜ λ²”μœ„ μ„€μ • ν•¨μˆ˜(cv2.inRange)의 μ˜μ—­μ΄ ν•œμ •λ˜μ–΄ 색상을 μ„€μ •ν•˜λŠ” 뢀뢄이 μ œν•œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 빨간색 μ˜μ—­μ„ κ²€μΆœν•˜λ € ν•  λ•Œ, 빨간색 μ˜μ—­μ΄ μ•½ 0 ~ 5와 μ•½ 170 ~ 179으둜 λ²”μœ„κ°€ 두 κ°€μ§€λ‘œ λ‚˜λˆ μ Έ μžˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄...

OpenCV - 15. Hue, Saturation, Value(HSV)

HSV(Hue, Saturation, Value) HSV(Hue, Saturation, Value) 곡간은 색상을 ν‘œν˜„ν•˜κΈ°μ— κ°„νŽΈν•œ 색상 κ³΅κ°„μž…λ‹ˆλ‹€. μ΄λ―Έμ§€μ—μ„œ 색상을 κ²€μΆœν•œλ‹€κ³  κ°€μ •ν•  λ•Œ BGRμ΄λ‚˜ RGB νŒ¨ν„΄μœΌλ‘œλŠ” 인간이 μΈμ§€ν•˜λŠ” μ˜μ—­μ˜ 색상을 κ΅¬λ³„ν•˜κΈ°μ—λŠ” 맀우 μ–΄λ ΅κ³  λ³΅μž‘ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ HSV 색상 곡간을 ν™œμš©ν•œλ‹€λ©΄ κ°„νŽΈν•˜κ³  λΉ λ₯΄κ²Œ νŠΉμ •...

OpenCV - 14. κ°€μž₯자리 κ²€μΆœ

κ°€μž₯자리 κ²€μΆœ(Edge) κ°€μž₯자리(Edge)λŠ” κ°€μž₯ λ°”κΉ₯ λΆ€λΆ„μ˜ λ‘˜λ ˆλ₯Ό μ˜λ―Έν•˜λ©°, 객체의 ν…Œλ‘λ¦¬λ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이미지 μƒμ—μ„œ κ°€μž₯μžλ¦¬λŠ” μ „κ²½(Foreground)κ³Ό λ°°κ²½(Background)이 κ΅¬λΆ„λ˜λŠ” 지점이며, μ „κ²½κ³Ό λ°°κ²½ μ‚¬μ΄μ—μ„œ 밝기가 큰 폭으둜 λ³€ν•˜λŠ” 지점이 객체의 κ°€μž₯μžλ¦¬κ°€ λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ κ°€μž₯μžλ¦¬λŠ” ν”½μ…€μ˜ 밝기가 κΈ‰κ²©ν•˜κ²Œ λ³€...