import cv2
img_color =cv2.imread('IMG_5999.jpeg',cv2.IMREAD_COLOR )
cv2.namedWindow('show Image')
cv2.imshow('show Image', img_color)
cv2.waitKey(0)
cv2.destroyWindow( )
import
opencv를 사용하기 위해 cv2를 import 한다.
img_color =cv2.imread('IMG_5999.jpeg',cv2.IMREAD_COLOR )
cv2.imread('파일이름', flags )
imread 함수의 리턴값을 변수에 대입해서 변수를 이용해 이미지에 접근 할 수 있도록 한다.
flags
- cv2.IMREAD_COLOR : 투명도 정보를 가진 알파 채널을 무시하고 이미지 파일을 컬러로 읽는다.
- cv2.IMREAD_GRAYSCALE : 이미지 파일을 GRAYSCALE 이미지로 읽어온다.
- cv2.IMREAD_UNCHANGED : 투명도 정보를 가진 알파 채널을 포함하여 이미지 파일을 컬러로 읽는다.
cv2.namedWindow('show Image')
cv2.namedWindow('윈도우이름'(,~))
윈도우에 컬러 이미지가 보이도록 한다. (두번째 인자는 트랙바를 붙이는 경우가 아니면 생략 가능.)
cv2.imshow('show Image', img_color)
cv2.imshow('윈도우 이름', 이미지 변수)
지정한 윈도우에 이미지를 보여준다. (nameWindow 함수 없이 imshow 함수만 호출해도 윈도우가 자동으로 생성된다.)
cv2.waitKey(0)
지정한 시간(단위 초)만큼 사용자의 키보드 입력 대기한다.
(0)-키보드 입력 무한 대기.
윈도우를 키보드 입력이 있을 때까지 띄워놓기 위해 사용한다.
cv2.destroyWindow( )
프로그램 종료전 윈도우를 위한 자원을 해제한다.
import cv2
img_color =cv2.imread('IMG_5999.jpeg',cv2.IMREAD_COLOR )
cv2.namedWindow('Show Image')
cv2.imshow('Show Image', img_color)
cv2.waitKey(0)
img_gray =cv2.cvtColor(img_color,cv2.COLOR_BGR2GRAY)
cv2.imshow('Show GrayScale Image',img_gray)
cv2.waitKey(0)
cv2.imwrite('savedimage.jpg',img_gray)
cv2.destroyAllWindows( )
img_gray =cv2.cvtColor(img_color,cv2.COLOR_BGR2GRAY)
cv2.cvtColor(변환할 이미지, 변환할 색공간 선택)
컬러 이미지를 Grayscale 이미지로 변환
cv2.imshow('Show GrayScale Image',img_gray)
cv2.imshow('show Image', img_color)와 cv2.imshow('Show GrayScale Image',img_gray)에서 첫번째 인자가 다르면 컬러이미지와 Grayscale 이미지를 같이(동시에) 볼 수 있다.
cv2.imwrite('savedimage.jpg',img_gray)
cv2.imwrite('저장할 파일이름',저장할 이미지 변수)
이미지 파일을 저장한다.
cv2.destroyAllWindows( )
cv2.destroyWindow( )와 같은 역할을 한다.
import cv2
cap =cv2.VideoCapture(0)
ret,img_color =cap.read()
cv2.imshow("color",img_color)
cv2.waitKey(0)
cap.release()
cv2.destroyAllWindows()
cap =cv2.VideoCapture(0)
비디오 캡처 객체를 생성한다.카메라로부터 영상을 캐치하기 위해 사용한다.
두대의 카메라 사용하려면 cv2.VideoCapture(0)인 비디오 객체를 생성하고 cv2.VideoCapture(1)인 비디오 캡처 객체를 추가 생성.
ret,img_color =cap.read()
비디오 캡처 객체의 read 함수를 호출, 카메라로부터 이미지 한장을 가져온다.
cap.release()
비디오 캡처 자원 메모리 해제한다.
import cv2
cap =cv2.VideoCapture(0)
while(True):
ret,img_color =cap.read()
if ret == False:
continue
img_gray =cv2.cvtColor(img_color,cv2.COLOR_RGB2GRAY)
cv2.imshow("Color", img_color)
cv2.imshow("Gray", img_gray)
if cv2.waitKey(1)&0xFF ==27:
break
cap.release()
cv2.destroyAllWindows()
while(True):
카메라로부터 영상 가져오기: '카메라로부터 캡쳐 이미지 가져오기'를 반복한다.
if ret == False:
continue
캡쳐되지 않은 경우 다시 루프를 실행한다(초기의 캡쳐가 잘 안되는 카메라를 위해 필요한 문장).
if cv2.waitKey(1)&0xFF ==27:
break
esc키를 누르면 무한루프에서 빠져나온다.
waitKey(1): 1초대기후 실행
import cv2
cap =cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
writer = cv2.VideoWriter('output.avi',fourcc,30.0,(640,480))
while(True):
ret,img_color =cap.read()
if ret == False:
continue
img_gray =cv2.cvtColor(img_color,cv2.COLOR_RGB2GRAY)
cv2.imshow("Color", img_color)
cv2.imshow("Gray", img_gray)
writer.write(img_color)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
writer.release()
cv2.destroyAllWindows()
fourcc = cv2.VideoWriter_fourcc(*'XVID')
동영상 저장시 사용되는 코덱이다('XVID' 사용할 코덱이름).
writer = cv2.VideoWriter('output.avi',fourcc,30.0,(640,480))
cv2.VideoWriter('저장될 동영상 파일 이름',동영상 저장시 사용되는 코덱,영상의 초당 프레임 수(보통 30.0-1초에 30장),(저장할 영상의 크기(캡쳐되는 이미지 크기와 일치)))
writer.write(img_color)
캡쳐되는 이미지를 반복적으로 저장하여 동영상을 만든다.
writer.release()
비디오 writer 자원 해제.
import cv2
cap =cv2.VideoCapture('output.avi')
fourcc = cv2.VideoWriter_fourcc(*'XVID')
while(True):
ret,img_color =cap.read()
if ret == False:
break
img_gray =cv2.cvtColor(img_color,cv2.COLOR_RGB2GRAY)
cv2.imshow("Color", img_color)
cv2.imshow("Gray", img_gray)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
cap =cv2.VideoCapture('output.avi')
cv2.VideoCapture('재생할 동영상 이름')
if ret == False:
break
동영상을 끝까지 재생하면 무한로프 빠져나온다.
👏