Skip to main content

A WSI Image processing application

Project description

Python Package: PyHistopathology

Read our documentation at https://pyhistopathology.readthedocs.io/en/latest/

Command line tool:

python3 WSI_PATCH_Extraction.py -args Mandatory args

  • -i: input svs file path
  • -o: output folder path
  • -f: input folder for path
    • Note: you should use either -i or -f, cannot use both. Additional args
  • -c: criteria
    • criteria: Random or None, Default is None
  • -s: patch size
    • Size of the patch to extract, default is (256,256)
  • -n: number of patches
    • Only should be given for -c Random. Default value is 2000.
  • -a: input xml
    • if annotations are provided annotations file path should be given. Otherwise don't use this arg.

Package Usage:

Reading WSI

Description

  • use WSI_Scanning.readWSI() to read an WSI Image

  • Input: WSI path or directory

  • Output: functioning numpy array of WSI Image with dtype int32 Function

  • readWSI(WSI_path, magnification_level, annotation_file, annonated_level) Arguments

    • WSI_path: Directory of WSI
    • magnification_level: level of zoom, example (40x,20x,10x,5x). Default magnification is “20x” - Note if magnification 40x for max zoom level of 20x image an error will be raised.
    • annotation_file: Default annotation = None. if annotation are available in xml formats. use annotation = inputxml file path.
    • annonated_level= if annotation is not giving no need to consider this variable. if annotation is given then mention z-axis of annotations. Default annotatedlevel =0
       ###Reading image example
       from WSI_Preprocessing.Preprocessing import WSI_Scanning 
       import cv2 
       img,slide_dim = WSI_Scanning.readWSI("example.svs") 
       cv2.imwrite("example.png",img)
    

Denoising WSI

Description

use Denoising.denoising() to remove stains, folds and other background noise in WSI

  • input: WSI Path or directory
  • Output: functioning numpy array of WSI Image (After denoising) with dtype int32.

Function

denoising(inputsvs, magnification, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value) Arguments

  • inputsvs: path or location of WSI.
  • magnification: level of zoom, example (40x,20x,10x,5x). Default magnification is “20x”
    • Note if magnification 40x for max zoom level of 20x image an error will be raised.
  • filtering: GuassianBlur, RGBThersholding, None
    • GuassianBlur: Homogeneity calculations based on image smoothing and Gaussian blur equations. We compute sum of square differences between two consecutive Gaussian blurred images as score for homogeneity
      - Upper limit: upper threshold of homogeneity score. default value is 9500 with kernel size of 1111 - lower limit: lower threshold of homogeneity score. default value is 1500 with kernel size of 1111 - Patch size: Not significant parameters for GuassianBlur filtering
    • RGBThersholding: Validated patches based on RGB values of patches - red_value, green-value, blue_values are threshold for RGB
    • None: Only removes Background
    • Note that our default is GuassianBlur technique. GuassianBlur is highly effective and requires more computational power (RAM). RGBThersholding is less effective which needs less computational power
import cv2 
# Here mandatory options are example.svs and magnification 
img = Denoising.denoising("example.svs", "20x" ) 
cv2.imwrite("example.png",img)

Extracting Patches

Description

use Extractingpatches.extractingPatches() to extract patches from WSI.

  • input: WSI Path or directory
  • output: patches from WSI.

Function: extractingPatches(inputsvs, outputpath, magnification, patch_extraction_creatia, number_of_patches, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value, Annotation, Annotationlevel, Requiredlevel, reconstructionimagepath)

Arguments - inputsvs, magnification, patch_extraction_creatia, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value, Annotation, Annotationlevel, Requiredlevel, arguments is same as denosing module. - patch_extraction_creatia: random, None - - Default is None. For extracting a fixed number of patches for WSI we can use random. - Default number of patches is 2000 - outputpath: folder to store the extracted patches - reconstructionimagepath: we you want to compare the patches with WSI we can mention the reconstructionimagepath. - Default is None - - Note: it only works with patch_extraction_creatia = None.

    • Note: For WSI number of patches can exceed 20k.
from WSI_Preprocessing.Preprocessing import Extarctingpatches
import cv2 
img = Extarctingpatches.extractingPatches("example.svs","temp" ,"20x" ) 
cv2.imwrite("exampler.png",img)
     # Here mandatory options are example.svs and magnification, and outputpath 
Extractingpatches.extractingPatches(example.svs, outputpath, magnification)

Project details


Release history Release notifications

This version

0.1

Download files

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

Files for PyHistopathology, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size PyHistopathology-0.1-py3-none-any.whl (16.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size PyHistopathology-0.1.tar.gz (4.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page