edge-detection / CONTRIBUTING.md
AKA Math
Update demo
dead0ef
|
Raw
History Blame Contribute Delete
3.33 kB
# Contributing to Edge Detection Demo
Thank you for your interest in contributing! This educational tool is designed for teaching edge detection concepts.
## How to Contribute
### Reporting Issues
If you find bugs or have suggestions:
1. Check if the issue already exists in the GitHub Issues
2. Create a new issue with:
- Clear description of the problem
- Steps to reproduce (if it's a bug)
- Expected vs actual behavior
- Screenshots if applicable
### Suggesting Enhancements
We welcome ideas for educational improvements:
- Additional edge detection algorithms (e.g., Deriche, Shen-Castan)
- New visualization methods (e.g., 3D surface plots)
- Better explanations of existing concepts
- Interactive exercises or quizzes
- Multi-scale edge detection demonstrations
### Code Contributions
1. **Fork the repository**
2. **Create a feature branch:**
```bash
git checkout -b feature/your-feature-name
```
3. **Make your changes:**
- Follow the existing code style
- Add comments for complex logic
- Update documentation if needed
4. **Test your changes:**
```bash
streamlit run app.py
```
- Test all interactive features
- Verify algorithms are correct
- Check edge cases
5. **Commit your changes:**
```bash
git add .
git commit -m "Add: Brief description of your changes"
```
6. **Push and create a Pull Request:**
```bash
git push origin feature/your-feature-name
```
Then create a PR on GitHub with a clear description.
## Code Style Guidelines
### Python Code
- Follow PEP 8 style guide
- Use meaningful variable names
- Add docstrings to functions:
```python
def function_name(param):
"""
Brief description.
Args:
param: Description
Returns:
Description of return value
"""
```
### Streamlit UI
- Keep UI simple and intuitive
- Use consistent markdown formatting
- Add helpful tooltips (help parameter in widgets)
- Organize content in logical sections
### Documentation
- Update README.md for major features
- Keep QUICKSTART.md up to date
- Add inline comments for complex algorithms
- Include references to academic sources
## Educational Content Guidelines
This is an educational tool, so clarity is paramount:
1. **Explanations should be:**
- Accurate and technically correct
- Easy to understand for graduate students
- Progressive (simple concepts first)
- Include visual examples
2. **Interactive elements should:**
- Provide immediate feedback
- Show clear cause-and-effect
- Include reasonable default values
- Have helpful tooltips
3. **Mathematical content should:**
- Use proper LaTeX notation
- Define all symbols
- Provide intuitive interpretations
- Include both equations and words
## Testing
Before submitting a PR, please verify:
- [ ] App runs without errors
- [ ] All sliders and controls work correctly
- [ ] Edge detection algorithms produce correct results
- [ ] Images display properly
- [ ] Gradient visualizations are accurate
- [ ] Educational content is clear and accurate
- [ ] No typos in text
## Questions?
Feel free to open an issue for discussion before starting major work.
## License
By contributing, you agree that your contributions will be licensed under the MIT License.