딥러닝을 통한 이미지처리 구현을 공부하자 2 - opencv로 이미지, 동영상 핸들링

r5z Yoon·2022년 11월 17일
0

동영상 핸들링

import cv2

cap = cv2.VideoCapture('04.mp4')
# cap = cv2.VideoCapture(0) # 웹캠 실행

while True:
	ret, img = cap.read() # 무수한 이미지 프레임의 연결이 영상임, 프레임을 읽겠다

	if ret == False: # 읽을 프레임이 없다면 루프 종료
		break

	cv2.imshow('result', img)
	
	if cv2.waitKey(1) == ord('q'):
		break


이미지 추론

import cv2
import numpy as np

net = cv2.dnn.readNetFromTorch('models/eccv16/starry_night.t7')

img = cv2.imread('imgs/01.jpeg')

h, w, c = img.shape

img = cv2.resize(img, dsize=(500, int(h / w * 500))) # 이미지 비율을 유지하기 위해 비례식을 씀

print(img.shape)

MEAN_VALUE = [103.939, 116.779, 123.680]
blob = cv2.dnn.blobFromImage(img, mean=MEAN_VALUE) # 전처리 함수

print(blob.shape)

net.setInput(blob) # 전처리 결과를 input에 넣음
output = net.forward() # output으로 확인

# 후처리
output = output.squeeze().transpose((1, 2, 0)) # 차원을 다시 줄이고 변형한 것을 돌려 놓음
output += MEAN_VALUE # 전처리에서 뺐던 평균값을 다시 더해 줌

output = np.clip(output, 0, 255) # 평균값을 다시 돌렸을 때 255를 넘지 않게 제한함
output = output.astype('uint8') # 값을 정수타입으로 변경 = 이미지로 보이게 함

cv2.imshow('output', output)
cv2.imshow('img', img)
cv2.waitKey(0)


File "/~.py", line 4, in
net = cv2.dnn.readNetFromTorch('models/eccv16/starry_night.t7')
cv2.error: OpenCV(4.6.0) /Users/xperience/actions-runner/_work/opencv-python/opencv-python/opencv/modules/dnn/src/torch/THDiskFile.cpp:496: error: (-2:Unspecified error) cannot open <models/eccv16/starry_night.t7> in mode r in function 'THDiskFile_new'



이 끔찍한 에러는 경로문제이다. 스택오버플로랑... 기타 등등ㅇㅔ서 이거 해결 못하고 우는 세계인들, 경로를 살펴보세요..
profile
_____ is a process </br> https://github.com/R5Z

0개의 댓글