Spaces:
Runtime error
Runtime error
| # 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. | |