딥러닝 데이터를 늘리기 위한 이미지 제너레이터 만들기

1) 이미지 제너레이터 만들기 - 기능 정의 및 ui디자인 짜기

잡동사니123 2023. 2. 22. 23:55

프로그램에 넣을 기능 정의

  • 불러오기 : 이미지1장 혹은 여러 이미지 처리를 위한 폴더를 불러올 수 있음
  • 속성 설정 : 이미지 제너레이터는 다양한 변형방법 및 생성개수를 설정할 수 있음
  • 이미지 생성 : 버튼 하나로 이미지 생성이 될 수 있게 함
  • 이미지 미리보기 : 생성된 이미지들을 볼 수 있음
  • 저장하기 : 사용자가 클릭을 통해 이미지를 저장할 수 있게 함, 사용자는 여러개의 이미지를 저장할 폴더를 고르게 됨, 이름은 시스템에서 번호를 자동으로 매겨서 저장되도록 함 
  • 도움말 제공 : 사용법과 속성 설명에 대해 담은 도움말 제공

프로그램 메인 디자인 짜기

  • 프로그램의 경우 pyqt를 이용하여 만들 예정
  • Qt Designer을 이용해서 ui 구성 배치함
  • 처음에 MainWindow를 선택한 후 생성

 

  • 기본 텍스트로 설정된 이름을 원하는 이름으로 바꾸기(파일칸에는 파일열기, 경로열기, 저장하기 3개가 있고 도움말에는 속성 도움말, 사용법 도움말 2개가 있음)

 

  • 그리드 레이아웃 2개 배치 후, 필요한 요소 배치 및 기본 글씨로 세팅된것 원하는 글씨로 바꾸기(오른쪽 그리드 레이아웃에 vertical layout 하나 더 넣음. 이 레이아웃에는 결과물 미리보기가 있을 예정임)
  • count는 maximum의 값을 100으로 설정
  • horizontal_filp, vertical_filp에는 True,False 2가지를 선택할수 있도록 설정
  • fill_mode에는 constant, nearest, reflect, wrap 4가지를 선택할수 있도록 설정
  • 미리보기와 generate/save 버튼은 처음부터 선택할수 없도록 enabled의 체크를 해제함
  • width_shift_range와 height_shift_range spinbox의 maximum의 값을 0.99로 수정함. 이 속성에 1이상의 속성은 0의 값을 준것처럼 아무 변화가 일어나지 않으므로 maximum의 값을 낮춘다.
  • rotation_ranged의 maximum 값 360으로 수정
  • 나머지 maximum값은 디폴트 값인 99.99이다

  • (만약 왼쪽 그리드 크기가 이상하자면 옵션글자 라벨 수직정책 Fixed로 바꾸기)

 

  • 나중에 연동할때 코드작업을 편하게 하기 위해 요소들 변수 이름 바꾸기

 

프로그레스바 창 디자인 짜기

  • 처음에 Dialog without Buttons를 선택한 후 생성
  • 원하는 요소들 배치 후 텍스트 바꾸기
  • dialog의 windowModality를 ApplicationModal로 설정 : 이 창이 띄워진 동안 다른창은 아무리 눌러도 조작 못함
  • progressbar의 format의 란을 빈칸으로 만들어 글씨를 지우기

프로그램 사용법 도움말 창 디자인 짜기

  • 처음에 Dialog without Buttons를 선택한 후 생성
  • 원하는 요소들 배치 후 텍스트 바꾸기
  • 버튼 2개의 sizepolicy의 수직정책을 maximum으로 바꾼 뒤 maximumSize의 너비를 30으로 설정
  • 윗 라벨의 sizepolicy의 수직정책을 maximum으로 바꾼 뒤 maximumSize의 높이를 30으로 설정
  • 밑의 라벨은 텍스트가 없는 라벨로 이미지가 들어갈 예정이다.(라벨인걸 표시하기 위해 사진상으로는 텍스트 있음)
  • 왼쪽 버튼은 일단 enable 체크 해제한다. 첫페이지일 경우 없는 이전페이지로 돌아가는것 방지

 

프로그램 속성 도움말 창 디자인 짜기

  • 처음에 Dialog without Buttons를 선택한 후 생성
  • 원하는 요소들 배치 후 텍스트 바꾸기
  • 원본이라 적힌 텍스트는 sizepolicy를 maximum으로 바꾼 후 maximumSize를 60으로 바꾸기 바꾸기
  • horizontalSpacer sizepolicy를 fixed로 바꾸기
  • TextLabel부분은 텍스트 대신 이미지가 들어갈 예정

변수 목록

  • 편한 작업을 위해 임의로 변수 이름을 바꾸었다.