728x90
반응형
import cv2
# 파일 열기
image_path = 'balloon.webp'
image = cv2.imread(image_path)
# 이미지 크기
image.shape
# 이미지를 이루는 점의 개수
image.size
# 직접 계산
image.shape[0] * image.shape[1] * image.shape[2]
# 넘파이로 계산
import numpy as np
np.product(image.shape)
# 자료형 보기
image.dtype
# 부동소수점 실수
import struct
x = 20
print('{:032b}'.format(struct.unpack('>I', struct.pack('>f', x))[0]))
# 이미지 보기
# 새 창을 띄워서 이미지 보기
cv2.imshow('image 1', image) # 제목이 image 1인 창에 이미지 표시
cv2.waitKey(0) # 아무 키 입력을 기다림. 인자는 대기 시간(밀리초), 0일 경우 계속
cv2.destroyAllWindows() # 모든 창 닫기
# 노트북 내에서 이미지 보기
from PIL import Image # Pillow 라이브러리 임포트
def show(image):
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # BGR → RGB로 채널 순서 변경
return Image.fromarray(rgb) # 객체 변환: 넘파이 배열 → PIL 형식으로
show(image)
PIL과 넘파이간 형식 변환
# PIL과 넘파이간 형식 변환
# PIL → 넘파이 배열
import numpy as np
pil_img = Image.open(image_path) # Pillow로 파일을 연다
np.array(pil_img) # 배열로 변환
# 넘파이 배열 → PIL
Image.fromarray(image)
비디오 처리
# 비디오 처리
# 비디오 열기
video = cv2.VideoCapture('자전거.mp4')
# 초당 프레임 수
fps = video.get(cv2.CAP_PROP_FPS)
# 비디오 재생
while(video.isOpened()): # 파일이 열려있는 동안
ret, frame = video.read() # 한 프레임 읽음
if not ret: # 없으면
break # 중단
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 흑백으로
cv2.imshow('frame',gray) # 출력
if cv2.waitKey(frame_interval) == ord('q'): # 키 입력을 기다림, q가 입력되면
break # 중단
video.release() # 파일 닫음
cv2.destroyAllWindows() # 창 닫음
# 웹캠 캡처
# 캡처 준비
video = cv2.VideoCapture(0)
# 캡처할 이미지의 폭을 640으로 설정, 높이를 480으로 설정
video.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
video.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# 캡처
ret, img = video.read()
# ret: 성공 여부
# img: 캡처된 이미지(넘파이 배열)
# 카메라 해제
video.release()
# 1 프레임 간격(밀리초=1/1000초 단위)
frame_interval = int(1000 / fps)
728x90
반응형
'AI > 딥러닝(DL)' 카테고리의 다른 글
이미지 연산 (0) | 2024.11.12 |
---|---|
컴퓨터 비전 과업(Computer CV, Task) (0) | 2024.11.11 |
댓글