OpenCV 7

7. video write (비디오 찍어서 저장)

import cv2 import numpy as np # 캠으로부터 데이터를 가져오기 cap = cv2.VideoCapture() if cap.isOpened() == False: print('카메라로부터 정보를 얻을 수 없습니다.') else : # 프레임의 정보를 가져와보기! # 화면크기를 말하는 것! (width, height) frame_width = int(cap.get(3)) frame_height = int(cap.get(4)) print(frame_width, frame_height) out = cv2.VideoWriter('data/videos/output.avi', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10, frame_width, frame_h..

6. video read

import cv2 import numpy as np # FPS : Frame per Second, 1초당 몇장의 사진으로 구성되어있나? # 비디오 파일 읽기 cap = cv2.VideoCapture('data/videos/chaplin.mp4') if cap.isOpened() == False : print('비디오 파일 여는데 실패했습니다.') else : # 반복문으로 구성한다. 왜냐하면, 동영상은 여러개의 사진으로 되어있기 때문에 # 동영상 시작부터 끝까지 imshow를 반복해서 화면에 출력해주면 이것이 바로 동영상 플레이다. while cap.isOpened() : # 사진 1장(frame)씩 가져와서 ret, frame = cap.read() # 제대로 된 사진이면, 화면에 표시하라고 코딩! ..

4. data type conversion

import cv2 import numpy as np source = cv2.imread('data/images/sample.jpg') scalingFactor = 1/255.0 # 0~255로 되어있는 이미지를 0~1사이의 실수로 정규화 source = source * scalingFactor print(source) # 반대로 실수로 되어있는 것을 다시 0~255로 만드는 방법 # 즉, 다시 이미지 배열로 만든 방법 source = source * 255 print(source) # 위의 코드는 실수이므로, 이미지 배열이 아니다. # 따라서 다시 이미지 배열로 만드려면, 데이터 타입을 변경해줘야 한다. # 변경하는 방법 2개 # 1. np.uint8(source) # 2. source.astype('..

3. crop and resize

import cv2 import numpy as np # cv2.IMREAD_COLOR 랑 1은 같은 의미입니다. source = cv2.imread('data/images/sample.jpg', 1) print(cv2.IMREAD_COLOR) # 가로는 80%로 # 세로는 60%로 # 이미지 확대 / 축소 scaleX = 0.8 scaleY = 0.6 scaleDown = cv2.resize(source, None, fx= scaleX, fy=scaleY, interpolation=cv2.INTER_LINEAR) print(scaleDown) cv2.imshow('Original', source) cv2.imshow('Scaled Down', scaleDown) # 이미지 자르기! crop_img = ..

2. read write display

import cv2 import numpy as np img_file = 'data/images/sample.jpg' # opencv로 이미지 열기 - 칼라 이미지 (BGR) image = cv2.imread(img_file, cv2.IMREAD_COLOR) # 이미지가 정상인지 체크하는 코드 if image is None : print('이미지파일을 열 수 없습니다.') else : print(image.shape) # opencv에서는 이미지를 BGR로 읽어옵니다. # 따라서 불러오는 이미지를 # 그레이 스케일로 변경할 수 있습니다. gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.imshow('color', image) cv2.imshow('gr..

1. numpy array

1. numpy array import cv2 import numpy as np # 1차원 배열 만들기 arr = np.array([5, 10, 15]) print(arr) print(arr.shape) print(arr[0]) # 데이터 값 변경 arr[1] = 50 print(arr) # 2차원 배열 만들기 array_2d = np.array([5,6,1,2,9,10]) array_2d = array_2d.reshape(3,2) print(array_2d) # 2차원 배열의 데이터 억세스 # 두번째 행, 두번째 열의 데이터를 억세스! print(array_2d[1,1]) # 이미지 파일을 읽어오는 방법 img = cv2.imread('data/images/sample.jpg') print(img) p..