Murtaza's Workshop님 강의를 보고 공부한 내용입니다.
이렇게 resources 디렉토리를 만들고, 디렉토리 안에 읽을 이미지와 비디오를 넣어줍니다.
openCV의 imread()
함수를 이용해서 이미지를 읽어들입니다.
waitKey()
는 키 입력 대기 시간으로, 파라메터로 넣은 시간(ms)단위 만큼 기다리는 함수입니다. 0은 무한대기!
import cv2
img = cv2.imread("resources/chiiro.jpg")
cv2.imshow("output_img", img)
cv2.waitKey(0) #0: infinite, 1: 1ms
비디오는 이미지의 연속이므로 무한루프를 이용해서 비디오를 프레임별로 캡쳐하고 이를 보여줍니다!
import cv2
cap = cv2.VideoCapture("resources/chiiro_video.MP4")
while True:
#성공적으로 읽어들였는지의 flag, 캡쳐한 이미지
success, img = cap.read()
cv2.imshow("Video", img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
웹캠을 읽어들이는 방법도 비디오와 같이 간단합니다.
import cv2
cap = cv2.VideoCapture(0) #0: default webcam
cap.set(3, 640) #width
cap.set(4, 480) #height
cap.set(10, 100)
while True:
success, img = cap.read()
cv2.imshow("Video", img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
COLOR_BGR2GRAY
입니다. COLOR_BGR2GRAY
말고도 HSV로 불러오기 등 여러 옵션이 있음import cv2
img = cv2.imread("resources/chiiro.jpg")
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image", imgGray)
cv2.waitKey(0)
흑백이 되어버린 얼짱고양이 ,,
import cv2
import numpy as np
img = cv2.imread("resources/chiiro.jpg")
kernel = np.ones((5,5), np.uint8)
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
imgBlur = cv2.GaussianBlur(imgGray, (7,7), 0)
imgCanny = cv2.Canny(img, 150, 200)
imgDialation = cv2.dilate(imgCanny, kernel, iterations=1) #increasing thickness
imgEroded = cv2.erode(imgDialation, kernel, iterations=1)
cv2.imshow("Gray Image", imgGray)
cv2.imshow("Blur Image", imgBlur)
cv2.imshow("Canny Image", imgCanny)
cv2.imshow("Dialation Image", imgDialation)
cv2.imshow("Eroded Image", imgEroded)
cv2.waitKey(0)