Spaces:
Runtime error
Runtime error
File size: 3,326 Bytes
dead0ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | # 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.
|