๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์นด๋ฉ๋ผ ์์์ ์ค์๊ฐ์ผ๋ก ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ ๋๋ ค์ ๊ฐ์ง๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ OpenCV ์ฝ๋๋ฅผ ์ดํด๋ณด์๋ค!
๐ก ์์์ ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ ๋๋ฆฌ๋ ๋ฒ
- ์ด๋ฏธ์ง ์ฌ์ฉํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ์์ฑ
- ๋์์ ํ๋ ์ → ์ด๋ฏธ์ง (opencv ์ฌ์ฉ)
- 2๋ฒ์ ์ด๋ฏธ์ง๋ฅผ 1๋ฒ์ ๋ชจ๋ธ์ ๋ฃ๊ธฐ → ํ๋ฅ
- ํ๋ฅ ํ๊ท → ํ๋ณ
OpenCV
- cap = cv2.VideoCapture(path or ์นด๋ฉ๋ผ์ฅ์น๋ฒํธ)
cap = cv2.VideoCapture("์์ ๊ฒฝ๋ก" or 0: ์นด๋ฉ๋ผ์ฅ์น๋ฒํธ)
์ฒซ ํ๋ ์ ์ฝ์ด cap ๊ฐ์ฒด์ ์ ์ฅ
- cap.isOpen()
if cap.isOpened():
cap์ด ์ง์ ํ ํ๋ ์์ผ๋ก ์ ๋๋ก ์ด๊ธฐํ๋์๋์ง ํ์ธ
- cap.read()
ret, img = cap.read() # ๋ฌดํ๋ฐ๋ณต
์ฐ์์ผ๋ก ํ๋ ์ ์ฝ๊ธฐ (์์ ์ ๋ณด ์ฝ๊ธฐ)
ret : true or false / img : ํ๋ ์ ์ด๋ฏธ์ง or None
- cap.get()
cap.get() # ์์์ ๋ณด ์ฝ์ด์ค๊ธฐ
cv2.CAP_PROP_FRAME_WIDTH / HEIGHT / COUNT : width ์ ๋ณด / height ์ ๋ณด / ์์ ์ด ํ๋ ์์
cv2.CAP_PROP_FPS : ์์ fps ๊ฐ
- cv2.imshow(’file’, file)
cv2.imshow(video_file, img) # ์ฐฝ์ ์ ๋ชฉ, ํ๋ฉด์ ํ์ํ ํ๋ ์ ์ด๋ฏธ์ง ๊ฐ์ฒด
์์ ํ์ผ ์ด๊ธฐ
- cap.release()
cap.release() # ์์ ๋ฐ๋ฉ
- cap.destroyAllWindows()
cv2.destroyAllWindows()
์ด๋ฆฐ ์ฐฝ(์์, ์ด๋ฏธ์ง) ๋ซ๊ธฐ
if cv2.waitKey(1) != -1:
break
์นด๋ฉ๋ผ(์ ์ฅ๋์ด ์๋ ์์ x)๋ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ํค๊ฐ ๋๋ฆฌ๋ฉด ์ ์ง๋๋๋ก
- OpenCV์ฐธ๊ณ ์ฝ๋
import cv2 cap = cv2.VideoCapture("์์ ๊ฒฝ๋ก" or 0: ์นด๋ฉ๋ผ์ฅ์น๋ฒํธ) # ์บก์ฒ ๊ฐ์ฒด ์์ฑ # ์์ ํ์ผ ์ฝ๊ธฐ if cap.isOpened(): # ์บก์ณ ๊ฐ์ฒด ์ด๊ธฐํ ํ์ธ while True: ret, img = cap.read() # ๋ค์ ํ๋ ์ ์ฝ๊ธฐ --- โก if ret: # ํ๋ ์ ์ฝ๊ธฐ ์ ์ cv2.imshow(video_file, img) # ํ๋ฉด์ ํ์ --- โข cv2.waitKey(25) # 25ms ์ง์ฐ(40fps๋ก ๊ฐ์ ) --- โฃ else: # ๋ค์ ํ๋ ์ ์ฝ์ ์ ์์ด, break # ์ฌ์ ์๋ฃ else: print("can't open video.") # ์บก์ณ ๊ฐ์ฒด ์ด๊ธฐํ ์คํจ # ์นด๋ฉ๋ผ ํ๋ ์ ์ฝ๊ธฐ if cap.isOpened(): # ์บก์ณ ๊ฐ์ฒด ์ฐ๊ฒฐ ํ์ธ while True: ret, img = cap.read() # ๋ค์ ํ๋ ์ ์ฝ๊ธฐ if ret: cv2.imshow('camera', img) # ๋ค์ ํ๋ ์ ์ด๋ฏธ์ง ํ์ if cv2.waitKey(1) != -1: # 1ms ๋์ ํค ์ ๋ ฅ ๋๊ธฐ ---โก break # ์๋ฌด ํค๋ผ๋ ์ ๋ ฅ์ด ์์ผ๋ฉด ์ค์ง else: print('no frame') break else: print("can't open camera.") cap.release() cv2.destroyAllWindows()
์ฐธ๊ณ ๋งํฌ
's t u d y . . ๐ง > AI ์ค ML ์ค DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CNN] Custom Dataset์ผ๋ก Pothole detection (1) | 2022.10.05 |
---|---|
[YOLOv3] Object Detection๊ณผ Bounding Box (0) | 2022.10.02 |
[DARKNET] ๋คํฌ๋ท์ผ๋ก YOLOV3 ๋๋ฆฌ๋ ๋ฒ (0) | 2022.10.02 |
[YOLOv3] Object detection (1) | 2022.09.30 |
[OpenCV] ์ค์๊ฐ ์์์ฒ๋ฆฌ (0) | 2022.09.28 |