This guide is for people who want to help ImageJCsharp but do not know where to start.
ImageJCsharp is a C# native ImageJ-like scientific image analysis application. The project welcomes both code and non-code contributions.
You can help if you are:
- A C# developer.
- A WinForms developer.
- An ImageJ user.
- A microscopy or scientific imaging user.
- A tester.
- A documentation writer.
- A student looking for open-source tasks.
Good first tasks should be small, understandable, and testable.
Examples:
- Improve README wording.
- Add screenshots.
- Add sample images for manual testing.
- Add tests for
GrayImage. - Add tests for measurement edge cases.
- Add a simple processing command.
- Improve error messages.
- Compare one ImageJ menu item against ImageJCsharp and document the gap.
src/ImageJCsharp.Core
Core image model, ROI model, measurements, and algorithms. This is the best place for tested logic.
src/ImageJCsharp.App
WinForms application shell, menus, dialogs, image display, and user interaction.
tests/ImageJCsharp.Core.Tests
Automated tests for the core library.
docs
Roadmap, planning, release process, and contributor documentation.
- Pick one small issue.
- Create a branch.
- Write or update tests if the change affects core behavior.
- Change the code.
- Run:
dotnet build ImageJCsharp.sln
dotnet test tests/ImageJCsharp.Core.Tests/ImageJCsharp.Core.Tests.csproj- Open a pull request.
Prefer work in this order:
- Fix bugs that block basic workflows.
- Improve tested core behavior.
- Add small, common ImageJ features.
- Improve documentation and examples.
- Refactor only when it directly supports a feature or fix.
When proposing ImageJ-like behavior, include:
- ImageJ version or distribution used for comparison.
- Menu path or tool name.
- A small example image or described input.
- Expected result.
- Whether exact behavior matters for scientific reproducibility.
Suggested labels:
good first issuehelp wantedbugenhancementdocumentationimagej-compatibilitycoreuitestingrelease
For maintainers, good issues should include:
- A clear title.
- Expected behavior.
- Current behavior.
- A small scope.
- A suggested file or module if known.
- A note if the issue is suitable for first-time contributors.