Skip to main content

pyclickimage

Description

pyclickimage is a Python package providing a graphical interface to collect 2D coordinates of points on images.

The application supports:

  • multiple images in the same annotation session,
  • multiple annotation groups,
  • floating-point coordinates for subpixel precision,
  • CSV session import/export,
  • visualization controls and annotation management.

Run the graphical application:

pyclickimage-gui

GUI

Annotation sessions

Annotations are stored as complete sessions.

A session can contain several images and several groups. The exported CSV file has the following format:

Image,Group,Index,X,Y
image_1.png,default,0,128.5,102.0
image_1.png,default,1,115.2,153.7
image_1.png,Coco,0,201.0,126.5
image_2.png,default,0,80.0,45.3

The coordinates can be stored either as floating-point values or displayed with integer precision depending on the selected application mode.

X is the horizontal coordinate (column index) and Y is the vertical coordinate (row index), following NumPy image indexing:

image[Y, X]

Empty points can also be stored when a click is intentionally skipped:

Image,Group,Index,X,Y
image_1.png,default,2,,

Reading sessions

Session files can be loaded directly from Python without opening the GUI.

import pyclickimage

data = pyclickimage.read_session_csv(
    "session.csv"
)

print(data)

The returned dictionary has the following structure:

{
    "image_1.png": {
        "default": [
            (128.5, 102.0),
            (115.2, 153.7),
        ],
        "Coco": [
            (201.0, 126.5),
        ],
    }
}

Sessions can also be converted to JSON:

import pyclickimage

pyclickimage.csv2json(
    "session.csv",
    "session.json",
)

Authors

Project repository:

Documentation:

Installation

Install directly from GitHub:

pip install git+https://github.com/Artezaru/pyclickimage.git

Or clone the repository:

git clone https://github.com/Artezaru/pyclickimage.git

Requirements and compatibility

This package uses PyQt5 for the graphical interface.

If opencv-python is installed in the same environment, it is recommended to replace it with opencv-python-headless to avoid conflicts between Qt and OpenCV GUI backends.

The package is not compatible with the full opencv-python package.

License

Copyright 2025-2026 Artezaru

Licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the LICENSE file for more information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyclickimage-3.0.0.tar.gz (640.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyclickimage-3.0.0-py3-none-any.whl (409.7 kB view details)

Uploaded Python 3

File details

Details for the file pyclickimage-3.0.0.tar.gz.

File metadata

  • Download URL: pyclickimage-3.0.0.tar.gz
  • Upload date:
  • Size: 640.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyclickimage-3.0.0.tar.gz
Algorithm Hash digest
SHA256 7f3a4c8609ac0618349d1f10142b44441f7e431b1dd05c520055420cb8e206ee
MD5 8ddcacd9dd86ee5d5e7ee145e97ee31f
BLAKE2b-256 39c0ddd362cc3101690ed31ebc5487e8e8c8537f7592105d37bfaf2857da8838

See more details on using hashes here.

File details

Details for the file pyclickimage-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyclickimage-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 409.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyclickimage-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd6299e333c7fca336f1d7338b0516fedb5ee6cc1a88ad68c080db74d96fe995
MD5 4ae9d64afe8d6ca3e234e3b1fb3333ec
BLAKE2b-256 396a3918864af309d3f4c0079e7d497aeeb855a6db8e703b20588f301c81b7dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page