루덴스코드 Blog

1. Capture video from camera


import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
# Capture frame-by-frame
ret, frame = cap.read()

# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()



2. Saving a video

저장을 위해 필요한 코덱이 미리 설치되어 있어야 한다. 모니터화면을 동영상으로 저장하는 oCam 을 설치하면 Xvid 코덱이 설치된다. 일반 동영상플레이어 설치시 설치되는 Xvid 코덱은 읽기용 코덱이라 여기에서 사용되는 것과 다르다. Xvid 쓰기용 코덱을 설치한다. ( http://goo.gl/v63QJ5 )


import numpy as np
import cv2

cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)

# write the flipped frame
out.write(frame)

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

# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()



3. Playing video from file


import numpy as np
import cv2

cap = cv2.VideoCapture('output.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()


Comment +0

두번째 장에서는 이미지를 다룬다.

cv2.imread(), cv2.imshow() , cv2.imwrite() 세 함수를 사용해본다.


1. 이미지 읽기 : cv2.imread()


import numpy as np

import cv2


img = cv2.imread('promini.png',0)


cv2.imshow('image',img)

cv2.waitKey(0)

cv2.destroyAllWindows()


img = cv2.imread('promini.png',0) : 회색(gray)으로 이미지 읽기

img = cv2.imread('promini.png',1) : 원색으로 이미지 읽기



2. 이미지 디스플레이 : cv2.imshow()


import numpy as np

import cv2


img = cv2.imread('promini.png',0)


cv2.namedWindow('image', cv2.WINDOW_NORMAL)

cv2.imshow('image',img)

cv2.waitKey(0)

cv2.destroyAllWindows()


cv2.namedWindow('image', cv2.WINDOW_NORMAL) : 윈도우 사이즈 조절 가능



3. 이미지 쓰기 :  , cv2.imwrite()


import numpy as np
import cv2

img = cv2.imread('promini.png',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('prominigrey.png',img)
    cv2.destroyAllWindows()





Comment +0

오픈CV 를 사용해 보려고 Python 을 시작한다. OpenCV 도 Python 도 잘 모른다. 하지만 둘다 그리 어렵지는 않으리라는 생각을 하면서 우선 OpenCV-Python tutorial 의 내용을 따라하기로 한다.


파이썬의 버젼은 2.7 대의 구버젼과 3.0 대의 신버젼이 있다. 신버젼이 오히려 많이 사용되지 않고 있다. 예전 버젼으로 나온 많은 라이브러리가 사용되지 않기 때문이고, 문법적으로 상당한 변화가 있다. 언젠가는 바뀌겠지라고 생각을 하지만 정말 바뀔지는 모르겠다. 굳이 100 원짜리 연필로 가능한 낙서를 10만원짜리 만년필로 대체할 필요는 없고, 2.7 대에서 굳이 큰 문제없이 - 문제가 전혀없는 것은 아니지만 - 사용하는 것을 3.0 대로 바꾸면서 파이썬을 사용하려는 사람이 얼마나 될지 모르겠다. 어쩌면 게임에서 지금까지 모은 모든 보호장비와 무기를 벗어던지고 근육만 두꺼운 신캐릭으로 바꾸라고 할때 처음 시작하는 사람이라면 당연히 가진 장비가 없으니 초기치가 든든한 신캐릭을 쓰겠지만 이미 많은 투자를 통해 무기와 방어구를 제대로 갖춰둔 사람이 그 모든 장비를 버릴수 있을까?


그래서 OpenCV 를 사용하기 위해서 Python 은 2.7 버젼을 사용한다.


1. Python2.7 버젼대를 다운 받고,

2. 에디터로 PyCharm Community 버젼 (무료)을 다운받아 설치한다.

3. PyCharm 을 실행시키고, New Project 를 만들어본다. 

4. File >> Setting >> Project >> Project Interpreter 에서 기존에 설치된 플러그인들을 최신버젼으로 설치한다. 

5. 설치시 에러가 나면 에러가 난 부분을 잘 찾아 읽어본다. Microsoft Visual C++ Compiler Package for Python 2.7 을 설치하라는 메시지가 있으면 그곳에 나온 링크를 따라가서 파일을 다운받아 설치한다.  (링크 : https://goo.gl/E9EAkI )

6. + 키를 눌러 numpy, matplotlib 를 검색한 후 찾아서 설치한다. 

7. OpenCV 를 다운받아서 설치한다. ( http://goo.gl/ZnEZiW )

8. PC 의 opencv/build/python/2.7/ 아래 폴더(32비트와 64비트 두가지 폴더가 있음)에서 cv2.pyd 파일을 C:/Python27/lib/site-packeges 에 복사한다.

9. 완성. 제대로 되었는지 확인하기 위해


import cv2

print cv2.__version__


결과로 버젼값이 화면에 나오면 완성


python, opencv 로 구글검색하면 나오는 사이트 OpenCV Python Tutorial 을 시작한다. (https://goo.gl/pFZA0g)



Comment +0