示例#1
0
    def file_open(self):
        full_path = QFileDialog.getOpenFileName(None, 'Open file', './')

        if full_path[0]:
            file_path = f'{full_path[0]}'
            dir_list = os.path.dirname(file_path)
            self.active_folder = dir_list[-1]
            print('Window: file_open = ', self.active_folder)
            return file_path

        else:
            notice.message('Warning', '파일 선택을 하지 않았습니다.')
            return 0
示例#2
0
    def algorithm(self):
        print('window: algorithm')

        # 풀스크린 테이블 초기화
        self.confirmation.list_clear()

        # 이미지 리스트 초기화
        self.roi_merge.clear()
        self.mask_merge.clear()
        self.mask_list.clear()
        self.roi_list.clear()

        if len(self.view.get_mask_list()) is 0:
            notice.message('Algorithm', '선택된 쓰레숄드가 없습니다.')
            return

        # string -> int casting.
        int_max = self.menu.label_max_value.text()
        int_min = self.menu.label_min_value.text()
        self.auto.clear_list()
        self.auto.max_size = int(int_max)
        self.auto.min_size = int(int_min)

        notice.message(
            '알림', '종료 알림창이 보일 때 까지 잠시 기다려 주세요! \n Yes 를 클릭하시면 알고리즘 처리를 시작합니다.')

        # 사용자 선택 이미지 총 갯수
        i: int = 0
        total_count = len(self.provider.image_container)

        # 사용자 선택된 마스크들 처리
        for mask in self.view.get_mask_list():
            roi_result, mask_result = self.auto.roi_designation(
                self.provider.image_container, self.active_image_index, mask,
                total_count)

            self.roi_list = self.roi_merge.mask_overwrite(
                total_count, roi_result)
            self.mask_list = self.mask_merge.mask_overwrite(
                total_count, mask_result)
            i = i + 1
            print('t = ', i)

        self.progress_value(100, 100)
        notice.message('알림', '알고리즘 처리를 종료 했습니다.')

        # 알고리즘 처리된 결과를 화면에 보여 줍니다.
        self.progress_value(0, 0)
        self.menu.exportButtonGreenColor()
        self.confirmation.create(self.mask_list, self.roi_list)
        self.scroll_mask.setWidget(self.confirmation.top_widget)
        self.scroll_mask.show()
        self.view.repaint()
示例#3
0
文件: menu.py 项目: sungminYoon/NCC
    def changButtonClicked(self):
        print('call Menu: changButtonClicked')

        # 사용자가 선택한 파일경로
        call_file = self.call_open_path
        file_path = call_file()

        if file_path is 0:
            return

        # 사용자가 선택한 파일이름
        last_name = file_path[file_path.rfind('/') + 1:]

        # 파일이름의 경로 폴더명
        dicom_folder = file_path.replace(last_name, '', 1)

        notice.message('messages..',
                       '아래 Yes 를 누르면 파일 변환을 시작합니다. 잠시만 기다려 주세요...')

        if check.extension_dicom(dicom_folder):
            # 폴더에 들어 있는 DICOM 에서 PNG 파일 내보내기
            img_folder = file_manager.create_folder_img(
                self.image_save_path, Menu.IMAGE_EXTENSION)
            roi_folder = file_manager.create_folder_roi(img_folder)
            convert.dicom_imageToImg(dicom_folder, img_folder,
                                     Menu.IMAGE_EXTENSION)
            print('DICOM 파일에서', {Menu.IMAGE_EXTENSION}, '파일 내보내기 완료!')

            # 0.1초 delay 후
            time.sleep(0.1)

            # 썸내일 이미지 만들기
            self.check_thumbnail(img_folder)

            # roi 폴더의 mask 파일 리스트
            roi_list = file_manager.find_png_list(roi_folder)
            time.sleep(0.1)

            # Window 메소드를 호출하여 scroll 에 경로 데이터를 보냅니다.
            call_data = self.call_scroll
            call_data(img_folder, roi_list)
        else:
            notice.message('Error', messages.ERROR_DICOM)
            return

        notice.message('messages..', '파일 변환이 완료 되었습니다. 아래 Yes 를 눌러 주세요!')
示例#4
0
文件: window.py 项目: sungminYoon/NCC
    def mask_export(self):
        if len(self.mask_list) is 0:
            notice.message('EXPORT', '선택된 이미지가 없습니다. 알고리즘 처리를 먼저 해 주세요!')
            return

        file_manager.create_folder(self.active_folder)
        notice.message('EXPORT', '내보내기를 시작합니다. 시간이 다소 소요 됩니다.')

        # 마스크 TEXT 파일로 내보내기
        i: int = 0
        for obj in self.mask_list:
            # obj 가 0이 아니면
            if obj != 0:
                # 사용자 마스크 체크 확인
                _, _, check = self.confirmation.mask_disable[i]
                if check is True:
                    img, index = obj
                    img_text.to_binary(self.active_folder, img, index)

                i = i + 1
                self.progress_value(len(self.mask_list), i)

        # 종료 로직
        self.progress_value(100, 100)
        self.mask_list.clear()
        self.roi_list.clear()
        self.menu.exportButtonGrayColor()

        notice.message('EXPORT', '내보내기가 완료 되었습니다.')
        self.progress_value(0, 0)

        # 풀스크린 우측 테이블 초기화
        self.confirmation.list_clear()
        self.confirmation.create(self.mask_list, self.roi_list)
        self.scroll_mask.setWidget(self.confirmation.top_widget)
        self.scroll_mask.show()
        self.view.clear_mask()
        self.re_setting(self.active_path, self.active_image_index)