A tool to remove label pages from TIFF/BigTIFF files...
Project description
TIFF WSI Label Removal Tool
A Proof of Concept tool to remove label pages from TIFF/BigTIFF files without loading the entire file into memory. This utility is especially helpful when dealing with Whole Slide Images (WSIs) where a label page is present and may contain sensitive information.
Why This Is Useful for Whole Slide Images (WSIs) — Label Page Found in WSI
In many Whole Slide Imaging (WSI) workflows—particularly within pathology or clinical research—TIFF files can contain additional pages labeled with patient details or institutional data. These label pages often reside alongside the main high-resolution scan. By removing the label page:
- You reduce privacy concerns by stripping away potentially identifying metadata.
- You retain the primary macro or full-resolution image necessary for analysis and sharing.
- You avoid loading the entire file into memory, which is critical when working with large WSI data.
Features
- Removes Label pages from TIFF/BigTIFF files (including WSIs).
- Preserves Macro and other non-label pages.
- Modifies XML metadata to remove references to label images.
- Operates at a low-level file structure, minimizing memory usage.
Installation
Install using pip:
pip install tiff-wsi-label-removal
Alternatively, install from source:
-
Clone the repository:
git clone https://github.com/zenquiorra/tiff-wsi-label-removal.gitcd tiff-wsi-label-removal
-
Install dependencies:
python -m pip install -r requirements.txt
Ensure you have a compatible Python version (e.g., Python 3.7+).
-
(Optional) Install as a package:
pip install .
Usage
You can use the script directly or via the installed CLI .
CLI usage (if installed)
If you have installed this package locally (via pip install . or through pip install tiff-wsi-label-removal), then run:
remove-label <input_tiff_file> <output_tiff_file>
Example:
remove-label sample_input.tiff sample_output.tiff
Inside a python script (if installed)
from tiff_wsi_label_removal.tiffprocessor import copy_tiff_low_level
copy_tiff_low_level(input_file_path, output_file_path)
Direct usage from source (if requirements are installed)
python remove_label.py <input_tiff_file> <output_tiff_file>
Example:
python remove_label.py sample_input.tiff sample_output.tiff
How It Works
- Page Verification : The script reads the TIFF structure via
tifffile. It identifies pages based on theImageDescriptiontag, looking for entries with"Label"or"Macro". - XML Modification : For the first page (usually containing metadata), the code extracts the XML, parses it (with
xml.etree.ElementTree), and removes references to the label information (looking forPIM_DP_IMAGE_TYPE="LABELIMAGE"). - Low-Level Copy : The script copies the file IFDs (Image File Directories) and image data segments, but skips the label page. It preserves the overall structure (page offsets, IFD chains) so the resulting TIFF remains valid.
- Result : You end up with a TIFF file that excludes the label page but retains other pages and images.
Planned Optimizations
Performance :
- Reduce file seeks by collecting and sorting I/O regions.
- Use configurable buffer sizes for copying.
- Merge contiguous byte regions to minimize I/O calls.
IFD Chain Integrity :
- Perform deeper checks to ensure removing pages doesn’t break references.
- Test against different TIFF variants (e.g., multi-page, BigTIFF).
Comprehensive Testing :
- Run tests on larger and more diverse TIFF datasets.
- Validate other metadata tags (beyond
ImageDescription).
Technical Analysis :
- Further review of TIFF/BigTIFF standards.
- Check how tools like QuPath handle label metadata and page chains.
Contributing
Contributions are welcome!
- Issues : If you find a bug or have a question, open a GitHub issue.
- Pull Requests : If you’d like to fix something or add a new feature, feel free to create a PR.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tiff_wsi_label_removal-0.1.7.tar.gz.
File metadata
- Download URL: tiff_wsi_label_removal-0.1.7.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faab6442d11034a3043b02f4215ac43125a1c36fbb6807cb38344813203ef48d
|
|
| MD5 |
889ead6e32ded617b6bb2aaee95dc65a
|
|
| BLAKE2b-256 |
ca388b35784d9987eba0a46282346a980cd8cfceba13cc06b08fb0f04080c6ef
|