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
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
- Artezaru artezaru.github@proton.me
Project repository:
Documentation:
- Online documentation: https://Artezaru.github.io/pyclickimage
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f3a4c8609ac0618349d1f10142b44441f7e431b1dd05c520055420cb8e206ee
|
|
| MD5 |
8ddcacd9dd86ee5d5e7ee145e97ee31f
|
|
| BLAKE2b-256 |
39c0ddd362cc3101690ed31ebc5487e8e8c8537f7592105d37bfaf2857da8838
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd6299e333c7fca336f1d7338b0516fedb5ee6cc1a88ad68c080db74d96fe995
|
|
| MD5 |
4ae9d64afe8d6ca3e234e3b1fb3333ec
|
|
| BLAKE2b-256 |
396a3918864af309d3f4c0079e7d497aeeb855a6db8e703b20588f301c81b7dd
|