[GDSC] OpenCV๋กœ ๋น„๋””์˜ค read ๐ŸŽฅ

YOOJINยท2023๋…„ 1์›” 22์ผ
0

์นด๋ฉ”๋ผ๋กœ ๋น„๋””์˜ค ์ฝ๊ธฐ

import cv2

cap = cv2.VideoCapture(0)
if cap.isOpen():
	print('width: {}, height : {}'.format(cap.get(3), cap.get(4))
	
while True:
	ret, fram = cap.read()
	
	if ret:
		gray = cv2.cvtColor(fram, cv2.COLOR_BGR2GRAY)
		cv2.imshow('video', gray)
		k == cv2.waitKey(1) & 0xFF
		if k == 27:
			break
	else:
		print('error')

cap.release()
cv2.destroyAllWindows()	

cv2.VideoCapture()๋ฅผ ์‚ฌ์šฉํ•ด ๋น„๋””์˜ค ์บก์ณ ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ
()์•ˆ์˜ ์ˆซ์ž๋Š” ์žฅ์น˜ ์ธ๋ฑ์Šค(์–ด๋–ค ์นด๋ฉ”๋ผ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€)

  • 1๊ฐœ๋งŒ ๋ถ€์ฐฉ๋˜์–ด ์žˆ์œผ๋ฉด 0
  • 2๊ฐœ ์ด์ƒ์ด๋ฉด ์ฒซ ์›น์บ ์€ 0 ๋‘๋ฒˆ์งธ ์›น์บ ์€ 1๋กœ

cap.isOpen() : ๋น„๋””์˜ค ์บก์ณ ๊ฐ์ฒด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ Open๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

while True: ํŠน์ • ํ‚ค๋ฅผ ๋ˆ„๋ฅผ๋•Œ๊นŒ์ง€ ๋ฌดํ•œ ๋ฐ˜๋ณต์„ ์œ„ํ•ด ์‚ฌ์šฉ
ret, fram = cap.read() : ๋น„๋””์˜ค์˜ ํ•œ ํ”„๋ ˆ์ž„์”ฉ read
์ œ๋Œ€๋กœ ํ”„๋ ˆ์ž„์„ ์ฝ์œผ๋ฉด ret๊ฐ’์ด True, ์‹คํŒจํ•˜๋ฉด False
fram์— ์ฝ์€ ํ”„๋ ˆ์ž„์ด ๋‚˜์˜ด

cv2.cvtColor(): frame์„ ํ‘๋ฐฑ์œผ๋กœ ๋ณ€ํ™˜

๋‚˜๋Š” ์œ„์™€ ๊ฐ™์ด COLOR_BGR2GRAY๋กœ ์ฒ˜๋ฆฌํ•  ์˜ˆ์ • !

cap.release() : ์˜คํ”ˆํ•œ ์บก์ณ ๊ฐ์ฒด๋ฅผ ํ•ด์ œ

์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ๋น„๋””์˜ค ์ฝ๊ธฐ

import cv2

cap = cv2.VideoCapture('vtest.avi')

while(cap.isOpened()):
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

๋น„๋””์˜ค ์ €์žฅ

import cv2

cap = cv2.VideoCapture(0)

fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output.avi', fourcc, 25.0, (640,480))

while (cap.isOpend()):
    ret, frame = cap.read()

    if ret:
        # ์ด๋ฏธ์ง€ ๋ฐ˜์ „,  0:์ƒํ•˜, 1 : ์ขŒ์šฐ
        frame = cv2.flip(frame, 0)

        out.write(frame)

        cv2.imshow('frame', frame)

        if cv2.waitKey(0) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

cv2.VideoWriter(outputFile, fourcc, frame, size) : fourcc๋Š” ์ฝ”๋ฑ ์ •๋ณด, frame์€ ์ดˆ๋‹น ์ €์žฅ๋  ํ”„๋ ˆ์ž„, size๋Š” ์ €์žฅ๋  ์‚ฌ์ด์ฆˆ

Reference

0๊ฐœ์˜ ๋Œ“๊ธ€