작업일지/자율주행
21day-4
rlawltjqq
2022. 2. 7. 11:02
import cv2 #open cv를 들여 옵니다.
import RPi.GPIO as GPIO #GPIO를 사용 하기 위함입니다.
import time #시간에 관한 코드를 사용하기 위해 사용 해줍니다.
def main():
camera = cv2.VideoCapture(-1) #카메라 포트 -1
camera.set(3.640) #가로 크기
camera.set(4.480) #세로 크기
filepath = "/home/pi/ai car/video/test" #파일이 저장될 경로
i = 0 #사진의 번호를 붙일 숫자 변수를 만들고 0으로 초기화
while(camera.isOpened()):
keyValue = cv2.waitKey(10) #키보드의 입력을 받는다. 10ms로 키보드 값을 기다렸다 없으면 timeout으로 종료
if keyValue == ord('q'): #q가 입력되면 braek를 실행
braek
_, image = camera.read() #카메라를 읽어 옵니다
image = =cv2.filp(image,-1) #뒤집어 줍니다
cv2.imshow('Original', image) #Original 이라는 파일로 이미지를 열어 줍니다.
cv2.imwrite("%s_%05d.png" % (filepath, i), image) #%s는 문자열로 fliepath와 매칭 %05d는 0으로 채워지는 5자리 숫자값 i와 매칭
i = i+1 #겹치지 않기 위해 1씩 증가
time.sleep(1.0)
height, _, _ = image.shape #shape는 사진의 높이,너비,색상을 리턴한다. 높이를 자르기 위해 height 변쉐 높이 값을 대입한다.
save_image = image[int(height/2):,:,:] #높이의 위쪽의 반을 잘라 save_image 대입한다
save_image = cv2.cvtColor(save_image, cv2.COLOR_BGR2YUV) #RGB를 YUV로 바꿔서 보여준다.
save_image = cv2.GaussianBlur(save_image, (3,3), 0) #3x3으로 블러링 하였다.
save_image = cv2.resize(save_image, (200,66)) #사이즈를 200x66으로 변경하였다.
cv2.imshow(' save ',save_image) # save라는 이름으로 바뀐 영상을 출력한다.
cv2.destroyAllwindows()
if __name__ == '__main__': #__name__의 값이 __main__이면 조건이 참이 된다.
main() #main 함수를 실행합니다.
GPIO.cleanup() #GPIO를 초기화 합니다.