Releases: wkentaro/labelme
Releases · wkentaro/labelme
v5.10.0
What's Changed
Features
- feat(app): show canvas mode in status bar in #1682
- feat(app): show create-shape tools on left side bar in #1685
- feat(app): show image index in window title in #1692
- feat(canvas): allows dragging to move around the canvas by @juliusl in #1622
- feat(canvas): prioritize to select highlighted shape's vertex in Canvas in #1691
- feat(icons): refresh icons in #1701
- feat(zoom): zoom towards canvas center unless by mouse wheel in #1704
Fixes
- fix(app): disable editMode button onload because it's already EDIT mode in #1683
- fix(app): fix font size inconsistency in ToolBar on macOS in #1713
- fix(app): fix redundant mayContinue reusing fileSelectionChanged in #1693
- fix(app): handle high-dpi scaling issue on Qt applications in #1687
- fix(app): handle null image in paintCanvas in #1695
- fix(app): handle when file is closed and imageList is not None in #1700
- fix(app): show current index based on file list widget in #1708
- fix(app): stop focusing to ai-prompt after closing file in #1699
- fix(app): tweak epsilon for scaleFitWidth to better hide scrollbar in #1702
- fix(app): use ascii bullet in status messages to fix shifting in #1712
- fix(canvas): clear Canvas.shapes so that it won't be rendered after reset in #1690
- fix(canvas): stop caching sam by lru cache to reduce vram usage in #1715
- fix(zoom): center zoom on visible region center instead of canvas in #1705
Others
- chore(app): compact toolbar in #1684
- chore(tools): log lrelease version used & skip if lrelease is not 5.15.x in #1686
- refactor(app): refactor to use snake case and type-annotation in #1694
- refactor(app): refactor to use snake_case and type-annotation in #1697
- refactor(app): replace _adjust_scale with _set_zoom in #1703
- refactor(app): replace _noSelectionSlot with itemSelectionChanged.connect/disconnect in #1698
- refactor(app): use snake_case and type-annotate in #1696
- refactor(tests): use pathlib in labelme_tests in #1707
- test: isolate QSettings in test_app.py to prevent side effects in #1689
New Contributors
Full Changelog: v5.9.1...v5.10.0
v5.9.1
v5.9.0
What's Changed
Features
- feat: validate shape JSON objects in LabelFile in #1624
- feat: Allow spacebar for finalizing a shape by @akx in #1474
- feat: show drawing & editing status messages on status bar in #1673
- feat(canvas): show progress dialog when downloading AI model in #1677
- feat(app): add option to keep previous brightness/contrast settings in #1678
- feat(app): show download dialog for text-to-bbox model in #1679
- feat(app): add "About Labelme" menu and dialog in #1680
Fixes
- fix: Fix closure issue in brightness/contrast slider label update by @xiyaowong in #1613
- fix: don't fill linestrip internal area in #1628
- fix: fix missing fill-drawing in polygon mode in #1627
- fix: fix label list design inconsistency on Windows by using HtmlDelegate in #1646
- fix: fix cursor flickering on Windows in #1647
- fix: prevent overwriting items when dragging and dropping in label list in #1651
- fix: Fix brightness/contrast for PNG image in #1655
- fix: fix not-shown save automatically state by removing icon on Windows in #1657
Others
- chore: add startup log message for labelme version in #1615
- chore: include 16, 32, 48, 64, 128, and 256 pixel icons in icon.ico in #1619
- docs: link to new install-labelme-terminal doc (using uv) in #1623
- chore: Use standard
types.SimpleNamespaceinstead of customstructby @akx in #1480 - chore: Add .git-blame-ignore-revs by @akx in #1476
- ci: run lints/checks only once in #1629
- ci: fix indentation in ci.yml in #1630
- chore: remove flake8 noqa comments from init.py files in #1631
- chore: Clean up some
type: ignorecomments by @akx in #1626 - chore: upgrade ruff from 0.1.9 to 0.12.11; autofix by @akx in #1633
- chore: Apply and enable flynt check in #1634
- chore: Enable pyupgrade check in ruff in #1635
- ci: check translation files are up-to-date in #1636
- ci: use cache-apt-pkgs-action to speed up CI in #1637
- ci: ignore line numbers in translation file check in #1642
- refactor: make _get_default_config_and_create_labelmerc private in #1644
- chore: define default shape colors in Shape class in #1643
- build(dep): upgrade osam to 0.2.5 in #1645
- refactor: Simplify QPointF, Qt modifiers use in canvas.py in #1648
- chore: type annotate canvas functions to remove type: ignore in #1649
- chore: Remove mypy ignore for Shape._current_vertex_fill_color in #1661
- chore: Update language-updating by @akx in #1638
- chore: Clean up more "type: ignore" comments by @akx in #1632
- refactor: Move action collections out of
actionsnamespace by @akx in #1662
New Contributors
- @xiyaowong made their first contribution in #1613
- @akx made their first contribution in #1480
Full Changelog: v5.8.3...v5.9.0
v5.8.3
Fixes
- Use shutil to load Docker by @emmanuel-ferdman in #1589
- Fix mypy error by inheriting from io.StringIO by @wkentaro in #1603
- Use QtCore.QPointF to represent points in Canvas by @wkentaro in #1606
Dependencies
New Contributors
- @emmanuel-ferdman made their first contribution in #1589
Full Changelog: v5.8.2...v5.8.3
v5.8.2
What's changed
Features
- Catch exception globally so that it even show in log message with app in #1601
Fixes
- Check createMode in ["ai_polygon", "ai_mask"] before checking self._sam in #1588
Testing
- Mypy in #1572
- Test polygon creation in test app py in #1574
- Test openNextImg and openPrevImg methods in labelme.app.MainWindow in #1575
- Increase mypy check scope by installing pyqt5-stubs in #1595
Others
- Remove unused ColorDialog in #1570
- Enable isort check in ruff in #1573
- refactor: Replace sam_embedding caching with lru_cache in #1592
- Compute image embedding for SAM only when needed in #1593
- Initialize ai model when needed in canvas in #1596
Full Changelog: v5.8.1...v5.8.2
v5.8.1
v5.8.0
What's Changed
Features
- Introduce SAM2 by @wkentaro in #1557
- Support shape type "mask" in conversion (labelme_draw_json, labelme2voc.py, and more) by @wkentaro in #1560
Others
- Use Osam for AI-mask and AI-polygon by @wkentaro in #1551
- Rename labelme.ai -> labelme._automation by @wkentaro in #1552
- Add available Linux package managers to README.md by @mqcmd196 in #1534
- Remove labelme_json_to_dataset command by @wkentaro in #1561
New Contributors
Full Changelog: v5.7.0...v5.8.0
v5.7.0
What's Changed
Fixes
Changes
- Drop qtpy and primarily support PyQt5 in #1540
- Migrate to pyproject.toml and uv (from setup.py, pytest.ini, .flake8, ruff.toml) in #1541
Full Changelog: v5.6.1...v5.7.0
v5.6.1
v5.6.0
Features
Fixes
- Make group_id clearable by removing the already set value #1498
- Fix group edit when text field is disabled #1497
- Make point-manip reasonable: ALT+Click (add), ALT+SHIFT+Click (delete) #1496
- Draw crosshair and pointSize consistently regardless the zoom level #1471 (Thanks @PairZhu)
Others
- Use loguru for logging #1523