cv2.imread(filename, flags=None)
cv2.imwrite(filename, img, params=None)
cv2.namedWindow(winname, flags=None)
winname: 창 고유 이름. 이 이름으로 창을 구분함.
flags: 창 속성 지정 플래그
- cv2.WINDOW_NORMAL : 영상 크기가 창 크기에 맞게 지정됨
- cv2.WINDOW_AUTOSIZE : 창 크기가 영상 크기에 맞게 자동으로 변경됨 (기본값)
cv2.destroyWindow(winname)
cv2.destroyAllWindows()
winname: 닫고자 하는 창 이름, 일반적인 경우 프로그램 종료 시 운영 체제에 의해 열려 있는 모든 창이 자동으로 닫힘
cv2.moveWindow(winname, x, y)
winname: 창 이름
x, y: 이동할 위치 좌표
cv2.resizeWindow(winname, width, height)
winname: 창 이름
width, height: 변경할 창 크기
cv2.imshow(winname, mat)
import cv2
import sys
img = cv2.imread('cat.bmp') # cv2.IMREAD.GRAYSCALE => 흑백..
# 이미지 불러오기에 실패했을 때를 대비한 예외 처리.
if img is None:
print('Image load Failed!!')
sys.exit()
# 파일 형식을 보자.
print('type : ', type(img))
print('shape: ', img.shape)
print('dtype: ', img.dtype)
cv2.namedWindow('image') # 이게 없이 imshow하면 없는거를 알고 알아서 만들어서 출력함.
cv2.imshow('image', img)
# waitkey를 주지 않으면 프로그램이 꺼지면 꺼져서 번쩍하고 사라짐.
cv2.waitKey()
cv2.destroyAllWindows()
type : <class 'numpy.ndarray'>
shape: (480, 640, 3)
dtype: uint8
주의! ⇒ Matplotlib을 이용할 때는 RGB가 아닌 BRG로 입력이 되서 수정해줘야함!
import matplotlib.pyplot as plt
import cv2
# 컬러 영상 출력
imgBGR = cv2.imread('cat.bmp')
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)
plt.axis('off')
plt.imshow(imgRGB)
plt.show()
plt.imshow(imgBGR)
plt.show()
imgGray = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
plt.axis('off')
plt.imshow(imgGray, cmap='gray')
plt.show()
plt.subplot(121), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(122), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()
cv2.VideoCapture(filename, apiPreference=None)
filename :
apiPreference: 선호하는 동영상 처리 방법을 지정
cv2.VideoCapture.open(filename, apiPreference=None)
cv2.VideoCapture(index, apiPreference=None)
index : cameraid + domain_offset (CAP*) id
apiPreference: 선호하는 카메라 처리 방법을 지정
cv2.VideoCapture.open(index, apiPreference=None)
cv2.VideoCapture.isOpened()
cv2.VideoCapture.read(image=None)
cap = cv2.VideoCapture('vtest.avi')
if not cap.isOpened():
print('Camera open Failed')
sys.exit()
while True:
ret, frame = cap.read()
print('Frame width:', round(cap.get(cv2.CAP_PROP_FRAME_WIDTH)))
print('Frame height:', round(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
if not ret:
break
edge = cv2.Canny(frame, 50, 150)
cv2.imshow('frame', frame)
cv2.imshow('edge', edge)
if cv2.waitKey(30) == 27:
break
cap.release()
cv2.destroyAllWindows()