#######
while True:
print('★★★★★★★★이미지 블렌딩 게임 시작!★★★★★★★★')
input_size = int(input('이미지 블렌딩 장수 선택(2 or 3)>>'))
if input_size < 4:
ext_img = [] # 경로
ext_name = [] # 한국어 정답
rd_int = np.random.randint(0, len(img_fd), size=input_size)
for i in rd_int:
img_path = f'./crawlingDB/{img_fd[i]}'
en_name = img_fd[i].split('.')[0]
ko_name = name_dict[en_name]
ext_img.append(img_path)
ext_name.append(ko_name)
# 문제
add_img(ext_img, input_size)
# 정답 체크
cnt = result(input_size)
print()
wrong_cnt = 3 # 재도전 횟수
while cnt != 1:
# 입력이 틀리면
print(f'맞출 수 있는 남은 횟수 : {wrong_cnt}')
wrong_cnt -= 1 # 재도전 기회 하나 차감
cnt = result(input_size) # 다시 정답 입력 기회
if cnt == 1 or wrong_cnt <= 0:
break
print()
ch = input('[s]게임 다시 시작 [q]종료 >>')
if ch == 'q':
print('이미지 블렌딩 게임 종료!!')
print()
break
#######
cap = cv2.VideoCapture('./data/dogs.mp4')
# 동영상은 이미지의 연속이므로
while True:
ch, frame = cap.read() # ch : 성공 여부 (T or F), frame : 받아온 이미지가 저장된다
# 실패 할경우 멈추기
if not ch:
print('동영상 재생 실패 or 파일 읽기 실패')
break
cv2.imshow('video1', frame)
# q라고 하는 알파벳 을 클릭시 동영상 끄기
key = cv2.waitKey(10)
if key == ord('q'):
print("영상 종료")
break
cap.release()
cv2.destroyAllWindow()
!pip install cvlib
!pip install tensorflow==2.16.2
객체인식에 용이한 라이브러리로 tensorflow와 OpenCV가 함께 설치되어 있어야만 설치가 가능
데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리이다
img = cv2.imread('./data/test.png')
faces, conf = cv.detect_face(img)
line_color = [0,255,0]
line_thick = 3
'''
for i in range(len faces)
# putText (img, 텍스트, 위치, 글꼴, 글씨크기, 색, 두께)
cv2.putText(img, f'{conf[i]}', (faces[i][0], faces[i][1]-10), cv2.FONT_HERSHEY_PLAIN, 2, color, 2)
cv2.rectangle(img, (faces[i][0],faces[i][1]), (faces[i][2],faces[i][3]),line_color, line_thick)
'''
# 감지된 사각형을 씌워주고 정확도를 출력
# 약간 dict 형태 (x,y,x2,y2), c = list(zip(faces,conf))[i] 나눠준다
# 약간 향상 for 문?
for (x,y,x2,y2), c in zip(faces,conf):
cv2.putText(img, f'{c.2f}', (x, y-10), cv2.FONT_HERSHEY_PLAIN, 2, color, 2)
cv2.rectangle(img, (x,y), (x2,y2),line_color, line_thick)
cv2.imshow('test', img)
cv2.waitKet(0)
cv2.destroyAllWindow()