-
[Project_AF] 자동초점 현미경 개발기 (6) - 함수제작-1 [사진저장]Ort Lab 2020. 3. 8. 23:50
(5)에서 제작한 GUI에 각 버튼에 해당하는 함수를 본격적으로 작성해야겠네요.
정의해야할 함수는 다음과 같습니다.
save_data() - 카메라 화면을 ○○.jpg로 저장
settop() - 현재위치를 제물대 최대높이로 설정
up_step() - 제물대 위로 이동
down_step() - 제물대 아래로 이동AF() - 자동초점 실행기능
일단 가장 간단한 save_data()부터 빠르게 해보죠.
일단 캡쳐한 화면을 저정해야합니다.
def save_data(): text = 'Image' ret, frame = cap.read() cv2.imwrite('./Save/%s.jpg'%text,frame) print('System >>> Data_save Success [%s.jpg]'%text)
이 함수를 실행시키면 이 파일(~.py)이 존재하는 디텍토리(같은폴더)상의 Save라는 이름의 폴더 내부에 Image.jpg가 저장됩니다.
다만 저는 프로그램에서 지정된 파일명으로만 저장 되는것이 아닌 파일의 이름을 GUI자체에서 변경할 수 있도록 할 생각입니다.
저번에 제작한 GUI를 보시면.. 저기 SAVE as 옆에 image라고 적힌 칸이 있습니다.(image라고 적어논건 그냥 임의로 적어놓은것이고 원래는 비어있습니다.) 이 칸에 쓰여져있는 문자열을 저장할 사진의 이름으로 사용할 생각입니다.
그렇기 위해서는 저기 적힌 문자열을 불러와야되는데..
save_name = ttk.Entry(window, width=15) save_name.place(x=360,y=552)
저번에 작성한 GUI코드쪽의 Entry쪽입니다. 저 칸의 이름을 save_name으로 정의하였습니다.
save_name이란 Entry에 적힌 문자열은 get()함수로 불러올수 있는데요
text = save_name.get()
이런식으로 불러올 수 있습니다.
이를 코드에 적용하면..
def save_data(): #캡쳐해서 파일 저장. 구현끝 ret, frame = cap.read() text = save_name.get() cv2.imwrite('./Save/%s.jpg'%text,frame) cv2.imshow('image',frame) print('System >>> Data_save Success [%s.jpg]'%text)
이렇습니다.
실행시켜보면..
빈칸에 입력한 testImage가 그대로 testImage.jpg로 저장됩니다.
'Ort Lab' 카테고리의 다른 글
[Project_AF] 자동초점 현미경 개발기 (8) - 함수제작-3 [자동초점] (0) 2020.04.13 [Project_AF] 자동초점 현미경 개발기 (7) - 함수제작-2 [제물대 이동] (0) 2020.03.09 [Project_AF] 자동초점 현미경 개발기 (5) - GUI (0) 2020.03.06 [Project_AF] 자동초점 현미경 개발기 (4) - 초점 확인 알고리즘 (0) 2020.03.05 [Project_AF] 자동초점 현미경 개발기 (3) - 초점 확인방법 (0) 2020.03.04