From 8b26e9a4a73b2b1323c767fcfb877511bdbe4e88 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Mon, 3 Aug 2026 17:39:10 +1000 Subject: [PATCH 1/3] docs: fix stale rank() reference in card-algorithms.rst rank() was deprecated in favour of rankfilter() (see ImageSpatial.py's DeprecationWarning), but the "Rank filter" entry on the algorithms overview page still pointed at the old name -- the only such stale reference anywhere in docs/source (checked every deprecated method/property name against every .rst file). Co-Authored-By: Claude Sonnet 5 --- docs/source/card-algorithms.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/card-algorithms.rst b/docs/source/card-algorithms.rst index 5a0bab4a..6045acc9 100644 --- a/docs/source/card-algorithms.rst +++ b/docs/source/card-algorithms.rst @@ -21,7 +21,7 @@ by the toolbox. Consider these as some starting points for exploration. * Mathematical morphology: :meth:`~machinevisiontoolbox.Image.morph`, :meth:`~machinevisiontoolbox.Image.open`, :meth:`~machinevisiontoolbox.Image.close`, :meth:`~machinevisiontoolbox.Image.dilate`, :meth:`~machinevisiontoolbox.Image.erode` * Hit or Miss filtering: :meth:`~machinevisiontoolbox.Image.hitormiss`, :meth:`~machinevisiontoolbox.Image.thin`, :meth:`~machinevisiontoolbox.Image.triplepoint` - * Rank filter: :meth:`~machinevisiontoolbox.Image.rank`, :meth:`~machinevisiontoolbox.Image.medianfilter` + * Rank filter: :meth:`~machinevisiontoolbox.Image.rankfilter`, :meth:`~machinevisiontoolbox.Image.medianfilter` * Distance transform: :meth:`~machinevisiontoolbox.Image.distance_transform` * Image similarity: :meth:`~machinevisiontoolbox.Image.similarity` From 7968ddf80053040db695c84e51fa5e28c4857b36 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Mon, 3 Aug 2026 17:47:13 +1000 Subject: [PATCH 2/3] docs: remove reference to nonexistent CentralCamera.decomposeF decomposeF (fundamental-matrix decomposition) doesn't exist anywhere in the codebase, and can't meaningfully exist: unlike the essential matrix, a fundamental matrix alone can't be decomposed into a relative pose without the camera intrinsics -- that's exactly what decomposeE already handles, via the standard F -> E (using K) -> pose route. The mention was plain text (not a :meth: cross-reference, presumably because it would have been a broken link), the only trace of this in the entire repo. Co-Authored-By: Claude Sonnet 5 --- docs/source/card-algorithms.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/card-algorithms.rst b/docs/source/card-algorithms.rst index 6045acc9..2e54883b 100644 --- a/docs/source/card-algorithms.rst +++ b/docs/source/card-algorithms.rst @@ -69,7 +69,7 @@ by the toolbox. Consider these as some starting points for exploration. - Camera calibration: :meth:`~machinevisiontoolbox.Camera.CentralCamera.images2C`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.decomposeC` - Pose estimation: :meth:`machinevisiontoolbox.Camera.CentralCamera.estpose` - Projection: :meth:`~machinevisiontoolbox.Camera.CentralCamera.project_point`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.project_line`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.project_conic`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.project_quadric` - - Epipolar geometry: :meth:`~machinevisiontoolbox.Camera.CentralCamera.E`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.F`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.epiline`, CentralCamera.decomposeF, :meth:`~machinevisiontoolbox.Camera.CentralCamera.decomposeE` + - Epipolar geometry: :meth:`~machinevisiontoolbox.Camera.CentralCamera.E`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.F`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.epiline`, :meth:`~machinevisiontoolbox.Camera.CentralCamera.decomposeE` - Homography: :meth:`~machinevisiontoolbox.Camera.CentralCamera.H` - Fisheye camera: :class:`~machinevisiontoolbox.Camera.FishEyeCamera` - Catadioptric (omnidirectional) camera: :class:`~machinevisiontoolbox.Camera.CatadioptricCamera` From a44caa350166b1dddc85856f08d13f34c57d4eb9 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Mon, 3 Aug 2026 18:43:20 +1000 Subject: [PATCH 3/3] docs: add build date to footer copyright notice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Appends the Sphinx build date to the copyright string shown in every page's footer (pydata-sphinx-theme renders it verbatim as "© Copyright {{ copyright }}."), computed dynamically via datetime.date.today() so it tracks whenever the docs are actually built rather than needing a manual update. Also switched the year range from the ambiguous trailing "2020-," to "2020-present," -- the bare trailing hyphen immediately followed by a comma read as stacked punctuation rather than an intentional open-ended range. Verified with a real sphinx-build (full docs extra installed into an isolated venv): renders as "© Copyright 2020-present, Peter Corke: built 2026-08-03." in the built footer, no new warnings introduced. Co-Authored-By: Claude Sonnet 5 --- docs/source/conf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index c563087e..33826770 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -10,6 +10,7 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # +import datetime import os import sys import inspect @@ -28,7 +29,7 @@ # -- Project information ----------------------------------------------------- project = "Machine Vision Toolbox" -copyright = "2020-, Peter Corke" +copyright = f"2020–present, Peter Corke: built {datetime.date.today():%Y-%m-%d}" author = "Peter Corke" # The full version, including alpha/beta/rc tags