Divy632/SKIN-CANCER-DETECTION-SYSTEM
GitHub: Divy632/SKIN-CANCER-DETECTION-SYSTEM
一个基于 Flask 和 ABCDE 规则的 Web 端皮肤癌初步筛查工具,通过图像分析提供风险等级评估。
Stars: 0 | Forks: 0
# 🏥 皮肤癌检测工具
一个基于 Web 的综合应用程序,利用高级图像处理技术和机器学习进行皮肤癌检测。该工具提供初步筛查结果,并配备专业的医疗主题界面。



## ✨ 核心功能
### 🔐 **用户认证系统**
- **安全登录/注册**:专业的医疗主题认证页面
- **密码安全**:BCrypt 哈希加密及强度验证
- **会话管理**:使用 Flask-Login 进行安全的用户会话管理
- **用户仪表板**:个人分析历史和统计数据
### 🔬 **高级图像分析**
- **多因素分析**:不对称性、颜色变化、边缘不规则性
- **ABCDE 规则实现**:遵循皮肤科标准
- **风险评估**:综合评分系统(低/中/高风险)
- **实时处理**:使用 PIL 和 NumPy 进行即时分析
### 🎨 **医疗主题 UI/UX**
- **专业设计**:具有合适配色的医疗级界面
- **响应式布局**:适配桌面端、平板和移动设备
- **交互元素**:拖放上传、进度指示器
- **无障碍访问**:对屏幕阅读器友好,带有适当的 ARIA 标签
### 📊 **仪表板与分析**
- **分析历史**:所有已执行分析的完整记录
- **风险统计**:风险评估的可视化展示
- **个人资料**:用户账户管理
- **快捷操作**:快速访问新的分析和过往结果
### 🛡️ **医疗合规性**
- **免责声明集成**:全程提供清晰的医疗免责声明
- **专业标准**:遵循医疗软件指南
- **数据隐私**:安全存储用户数据和分析结果
## 🚀 快速开始
### 前置条件
```
# 检查 Python 版本(需要 3.7+)
python --version
# 检查 pip
pip --version
```
### 安装说明
1. **克隆或下载**项目到您的本地计算机
2. **安装依赖**(如果尚未安装):
pip install Flask Flask-Login Flask-SQLAlchemy Flask-WTF WTForms bcrypt Pillow numpy
3. **运行应用程序**:
# 选项 1:使用启动脚本
python run.py
# 选项 2:直接运行
python app.py
4. **打开浏览器**并访问:
http://localhost:5002
## 💡 使用说明
### 1. **创建账户**
- 在着陆页上点击“注册”
- 输入您的电子邮箱、用户名和安全密码
- 完成注册并登录
### 2. **上传皮肤图像**
- 转到分析页面
- 点击上传区域或拖放图像
- 支持的格式:PNG、JPG、JPEG、GIF、BMP、TIFF
- 最大文件大小:16MB
### 3. **查看结果**
- 获取带有风险评估的即时分析
- 查看技术细节和建议
- 检查您的仪表板以查看分析历史
### 4. **专业咨询**
- **始终咨询皮肤科医生**以获得正确的诊断
- 仅将结果用作筛查工具
- 如果结果令人担忧,请预约就医
## 🛠️ 技术栈
### 后端
- **Flask 3.1.0**:Web 框架
- **SQLAlchemy**:数据库 ORM
- **Flask-Login**:用户会话管理
- **WTForms**:表单验证
- **PIL/Pillow**:图像处理
- **NumPy**:数值计算
- **BCrypt**:密码哈希
### 前端
- **Bootstrap 5.1.3**:响应式 UI 框架
- **Font Awesome 6.0**:医疗图标和 UI 元素
- **自定义 CSS**:医疗主题样式
- **JavaScript**:交互功能和 AJAX
### 数据库
- **SQLite**:本地数据库存储
- **用户管理**:安全的用户账户
- **分析历史**:完整的分析记录
## 📁 项目结构
```
DEMO1/
├── app.py # Main Flask application
├── run.py # Startup script
├── requirements.txt # Python dependencies
├── README.md # This file
├── Template/ # Jinja2 templates
│ ├── base.html # Base template with medical theme
│ ├── login.html # Login page
│ ├── signup.html # Registration page
│ ├── index.html # Main analysis page
│ ├── dashboard.html # User dashboard
│ ├── results.html # Analysis results
│ └── about.html # About page
├── static/ # Static files
│ └── uploads/ # Uploaded images
└── instance/ # Database files
└── skin_cancer_detection.db
```
## 🔬 分析算法
该工具基于皮肤学的 **ABCDE 规则** 实现了全面分析:
### **A - 不对称性 (Asymmetry)**
- 比较病灶的左右两半
- 使用图像对比计算不对称性得分
- 得分越高表明不对称性越大
### **B - 边缘不规则性 (Border Irregularity)**
- 使用边缘检测算法
- 分析边缘的平滑度和规则性
- 检测不规则或呈扇贝状的边缘
### **C - 颜色变化 (Color Variation)**
- 检查整个病灶的颜色分布
- 分析 RGB 颜色变化
- 检测单个病灶内的多种颜色
### **风险评分系统**
- **低风险(0-2 分)**:继续定期自我检查
- **中风险(3-4 分)**:考虑预约皮肤科医生
- **高风险(5 分以上)**:强烈建议立即咨询
## ⚠️ 医疗免责声明
## 🔒 安全特性
- **密码哈希**:带盐值的 BCrypt
- **会话安全**:安全的会话管理
- **输入验证**:所有表单均进行服务端验证
- **文件上传安全**:类型和大小验证
- **SQL 注入防护**:SQLAlchemy ORM
- **XSS 防护**:模板自动转义
## 🎯 未来增强功能
- [ ] 集成 AI/ML 模型以提高准确性
- [ ] 多语言支持
- [ ] 导出分析报告(PDF)
- [ ] 与医疗数据库集成
- [ ] 高级用户角色(患者、医生)
- [ ] 远程医疗咨询功能
- [ ] 移动应用开发
## 📞 支持
如有问题、疑问或贡献:
1. 检查控制台是否有错误消息
2. 确保已安装所有依赖项
3. 确认端口 5001 可用
4. 检查上传目录的文件权限
## 📄 许可证
本项目仅用于教育目的。如果在临床环境中使用,请确保遵守医疗软件法规。
**用心 ❤️ 制作,致力于推进皮肤科筛查和早期癌症检测**
# 皮肤癌检测工具
一个基于 Web 的皮肤癌检测工具,采用由 Python 的 PIL (Pillow) 库驱动的高级图像处理技术来分析皮肤病灶,并提供初步筛查结果。
## ⚠️ 医疗免责声明
**本工具仅供教育和筛查目的使用。它不能替代专业的医疗诊断。如需对皮肤问题进行正确的评估和诊断,请务必咨询皮肤科医生。**
## 功能
- **图像分析**:使用 PIL/Pillow 进行高级图像处理
- **风险评估**:基于 ABCDE 规则的分析(不对称性、边缘、颜色、直径、演变)
- **技术指标**:详细分析,包括不对称性得分、颜色变化和边缘不规则性
- **用户友好的界面**:基于 Bootstrap 的现代 Web 界面
- **拖放上传**:带预览的简单文件上传
- **多种格式**:支持 PNG、JPG、JPEG、GIF、BMP、TIFF
## 分析功能
该工具检查以下几个关键特征:
- **不对称性分析**:比较病灶的左右两半
- **颜色变化**:分析颜色分布和变化
- **边缘不规则性**:使用边缘检测来评估边缘特征
- **颜色增强**:提高图像对比度以获得更好的分析效果
## 技术栈
- **后端**:Flask (Python)
- **图像处理**:PIL/Pillow
- **数值计算**:NumPy
- **前端**:Bootstrap 5、Font Awesome
- **文件处理**:Werkzeug
## 安装说明
1. **克隆或下载项目**
cd "MINI PROJECT"
2. **安装依赖项**
pip install -r requirements.txt
3. **运行应用程序**
python app.py
4. **打开浏览器**
访问 `http://127.0.0.1:5000`
## 环境要求
- Python 3.7+
- Flask 2.3.3
- Pillow 10.0.1
- NumPy 1.24.3
- Werkzeug 2.3.7
## 使用说明
1. **上传图像**:点击上传区域或拖放图像文件
2. **支持的格式**:PNG、JPG、JPEG、GIF、BMP、TIFF(最大 16MB)
3. **分析**:该工具将自动处理图像
4. **结果**:查看风险评估和技术分析
### 获得最佳效果的建议
- 使用良好的照明
- 清晰对焦于病灶
- 避免阴影和反光
- 包含一些周围皮肤以提供环境参考
## 项目结构
```
MINI PROJECT/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── README.md # This file
├── Template/ # HTML templates
│ ├── base.html # Base template
│ ├── index.html # Home page
│ ├── about.html # About page
│ └── results.html # Results page
└── static/
└── uploads/ # Uploaded images directory
```
## API 端点
- `GET /` - 主页
- `POST /upload` - 文件上传和分析
- `POST /api/analyze` - 用于分析的 API 端点
- `GET /about` - 关于页面
## 风险评估
该工具提供三个风险级别:
- **低风险**:得分 0-2,继续定期自我检查
- **中风险**:得分 3-4,考虑预约皮肤科医生
- **高风险**:得分 5+,强烈建议立即咨询皮肤科医生
## 许可证
本项目仅用于教育目的。
## 联系方式
有关此教育工具的问题,请查阅文档或相关的教育资源。
**切记**:早期发现和专业的医疗护理至关重要。如果您对任何皮肤变化感到担忧,请立即就医。# 皮肤癌 (SKIN-CANCER)
标签:Apex, Flask, Python, 医疗健康, 图像分析, 无后门, 机器学习, 皮肤癌筛查, 逆向工具