{"id":22476889,"url":"https://github.com/waterbottle54/tumor_simulator","last_synced_at":"2026-04-19T19:32:05.676Z","repository":{"id":262055858,"uuid":"886097367","full_name":"waterbottle54/tumor_simulator","owner":"waterbottle54","description":"Brain Tumor Simulator 는 Qt5 / Python 으로 작성된 Desktop 의료 영상 소프트웨어입니다.  이 프로그램은 DICOM 데이터로부터 종양을 나타내는 3D 모델을 생성하고, 종양의 체적을 계산합니다.","archived":false,"fork":false,"pushed_at":"2024-12-16T03:07:48.000Z","size":21734,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-27T17:47:52.026Z","etag":null,"topics":["dicom","mvvm","open3d","opencv","opengl","python","qt","radiology-imaging"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waterbottle54.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-10T07:21:51.000Z","updated_at":"2024-12-16T03:07:52.000Z","dependencies_parsed_at":"2024-11-10T08:24:26.053Z","dependency_job_id":"7e447635-aa53-4fe4-a328-ff99e9d369e7","html_url":"https://github.com/waterbottle54/tumor_simulator","commit_stats":null,"previous_names":["waterbottle54/tumor_simulator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/waterbottle54/tumor_simulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waterbottle54%2Ftumor_simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waterbottle54%2Ftumor_simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waterbottle54%2Ftumor_simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waterbottle54%2Ftumor_simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waterbottle54","download_url":"https://codeload.github.com/waterbottle54/tumor_simulator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waterbottle54%2Ftumor_simulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32020479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dicom","mvvm","open3d","opencv","opengl","python","qt","radiology-imaging"],"created_at":"2024-12-06T14:08:31.006Z","updated_at":"2026-04-19T19:32:05.659Z","avatar_url":"https://github.com/waterbottle54.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 뇌종양 분석기 (Brain Tumor Simulator)\n\u003cp align=\"right\"\u003eCopyright © 2023 조성원(Sung Won Jo)\u003c/p\u003e\n\n ## Introduction\n \n 종양 컨투어 탐지 (Contour Detection) | Binarization, area threshold custumization\n:-----------------------------:|:------------------------:\n![](https://github.com/waterbottle54/tumor_simulator/blob/main/screenshots/auto-detection.png) | ![](https://github.com/waterbottle54/tumor_simulator/blob/main/screenshots/cv-code.png)\n\n 종양 3D 재구성 (Poission Reconstruction) | 성장패턴 분석(Growth Pattern Analysis)\n:-----------------------------:|:------------------------:\n![](https://github.com/waterbottle54/tumor_simulator/blob/main/screenshots/demo-model.png) | ![](https://github.com/waterbottle54/tumor_simulator/blob/main/screenshots/demo-graph.png)\n\n * **Brain Tumor Simulator**는 **Qt5 / Python** 으로 작성된 **Desktop** 의료 영상 소프트웨어입니다.\u003cbr\u003e\n\n   이 프로그램은 **DICOM** 데이터로부터 종양을 나타내는 3D 모델을 생성하고, 종양의 체적을 계산합니다.\u003cbr\u003e\n\n * 이 프로그램은 의료 진단을 대체하는 용도로 사용될 수 없습니다.\n\n   This application is not intended to replace professional medical diagnosis.\n\n ## Getting Started\n\u003e ### Dependencies\n\u003e * Windows: **10, 11**\n\u003e * python \u003e= **3.0.9**\n\u003e \n\n\u003e ### Installation\n\u003e * **Choice 1**. Repository의 **Main.py**를 python 인터프리터(\u003e=3.0.9)로 실행합니다.\n\u003e   \n\u003e     *(Consts.py 모듈의 debug_or_release 를 True 로 설정합니다.)*\n\u003e   \n\u003e * **Choice 2**: 다음 링크에서 **실행파일**(.exe)을 다운로드 합니다.\n\u003e   \n\u003e     [[EXE] Brain Tumor Simulator.zip](https://drive.google.com/file/d/1jTMRluP4cpLhTS-4g9lGYfiC0SxKQW2w/view?usp=sharing)\n\n ## Funtionality\n\u003e ### Viewing\n\u003e * MRI 및 CT 영상이 담긴 DICOM 파일을 열람할 수 있다.\n\u003e * 시리즈, 단면의 특정 영역을 확대하거나 축소하여 볼 수 있다.\n\n\u003e ### 3D Modeling\n\u003e * 종양에 해당하는 영역을 감지하거나 수동으로 마킹할 수 있다.\n\u003e * 적층된 종양 단면으로부터 종양의 입체 모델을 생성할 수 있다.\n\u003e * 종양 모델을 렌더링, 회전 등 변환을 가할 수 있다.\n\u003e * 종양 모델을 파일(*.tmr)로 내보낼 수 있다.\n\n\u003e ### Analyzing\n\u003e * 종양 모델의 부피를 계산할 수 있다.\n\u003e * 촬영 시점이 다른 종양 모델을 파일(*.tmr)로부터 불러와 서로 비교할 수 있다.\n\u003e * 촬영 시점에 따른 종양의 부피 및 성장율을 그래프로 나타낼 수 있다.\n\n\u003e ### Etc.\n\u003e * 프로젝트를 파일(.bts)로 저장하고 불러와서 모델을 수정할 수 있다.\n\u003e * Help 메뉴로부터 사용 방법, 프로그램 정보를 확인할 수 있다.\n\n ## Project Overview\n\u003e ### Language\n\u003e Python (3.9.0 interpreter)\n\n\u003e ### IDE\n\u003e Visual Studio Code (1.95.3) \n\n\u003e ### Framework\n\u003e Qt5 (5.15.11)\n \n\u003e ### GUI\n\u003e * 단일한 윈도우(MainWindow.py)가 존재한다.\n\u003e * 윈도우는 2개의 하위 Fragment 모듈들로 구성되며, 대부분의 동작은 각 Fragment가 처리한다.\n\u003e * LayersFragment 는 시리즈 및 단면 탐색, 종양 경계 입력을 수행한다.\n\u003e * RenderingFragment 는 3D 렌더링, 모델 변환(rotate, scale)을 수행한다.\n \n\u003e ### Architecture\n\u003e * MVVM Pattern\n\u003e * 단일한 뷰모델(ViewModel.py)이 존재한다.\n\u003e * Layer 간 결합도를 낮추기 위해 Observer 패턴을 사용하였다.\n\u003e * Observer 패턴의 구현을 위해 data와 callback을 갖는 LiveData 모듈을 작성하였다.\n \n\u003e ### 3D Graphics\n\u003e * 렌더링과 영상 처리에 각각 PyOpenGL(3.1.7), OpenCV(4.10.0), Open3d(0.18.0)를 사용하였다.\n\u003e * 종양의 경계를 결정하기 위해 단면 이미지에 Contour detection을 적용하였다. (사용자 수정 가능)\n\u003e * 입력된 종양 경계점을 적층하여 3D point cloud 를 구성하였다.\n\u003e * point cloud 로부터 mesh 를 얻는 계산에는 Poission reconstruction 이 적용되었다.\n\u003e * 종양 모델의 부피는 n번째 단면적 Sn, 단면간격 Δh에 대하여 V = Σ(Sn*Δh)로 결정하였다.\n\u003e * 단면적은 Shoelace formula 에 경계점을 입력하여 계산하였다.\n\u003e * 동일한 종양을 여러 개의 시리즈(Axial, Coronal, Sagittal)에서 마크한 경우, 모든 시리즈로부터 point cloud를 취한다.\n\u003e * 위 경우 각 시리즈가 서로의 단면 사이에 있는 공백을 보완해주므로 실제에 가까운 모델을 생성할 수 있다. (부피는 산술평균을 취한다)\n\n ## Author\n * 조성원 (Sung Won Jo)\n \n     📧 waterbottle54@naver.com\n   \n     📚 [Portfolio](https://www.devsungwonjo.pe.kr/)\n   \n     📹 [YouTube Channel](https://github.com/waterbottle54)\n   \n \u003cimg src=\"https://github.com/waterbottle54/tumor_simulator/blob/main/screenshots/demo-about.png\" alt=\"My Image\" width=\"70%\"\u003e\n\n ## Version History\n * **1.01** (2023.4): 종양 렌더링 기능 구현\n   \n * **1.02** (2023.5): 종양 성장 패턴 analyze 기능 구현\n\n * **1.03** (2024.12): 종양 경계 auto detection 구현\n\n ## Acknowledgments\n * Darcy Mason, Adit Panchal, MIT (pydicom: https://github.com/pydicom/pydicom)\n * Mike C. Fletcher (pyopengl: http://pyopengl.sourceforge.net)\n * Open3D Team (open3d: https://www.open3d.org)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaterbottle54%2Ftumor_simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaterbottle54%2Ftumor_simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaterbottle54%2Ftumor_simulator/lists"}