tests.compare_cv2_tifffile API documentation

# tests.compare_cv2_tifffile

A script that compares reading images with cv2 and tifffile for speed.

View Source

     1#!/usr/bin/env python
     2"""
     3A script that compares reading images with cv2 and tifffile for speed.
     4"""
     5
     6import os
     7import time
     8import cv2
     9import numpy as np
    10import tifffile
    11import imageio.v3 as imageio
    12import skimage.io
    13
    14
    15def main():
    16    # Get all DAPI .tif file names in the directory
    17    file_path = "/mnt/HDSCA_Development/data/0B58703"
    18    file_names = [os.path.join(file_path, f"Tile{i:06d}.tif") for i in range(100, 200)]
    19
    20    print(f"Number of files: {len(file_names)}")
    21    # cv2
    22    start = time.time()
    23    cv2_results = []
    24    for file_name in file_names:
    25        img = cv2.imread(file_name, cv2.IMREAD_UNCHANGED)
    26        # Check that we are getting the same results
    27        cv2_results.append(np.mean(img))
    28        # Print on the same line over and over
    29        # print(f"cv2: {os.path.basename(file_name)}")
    30    end = time.time()
    31    print(f"cv2: {end - start}")
    32
    33    # tifffile
    34    start = time.time()
    35    tifffile_results = []
    36    for file_name in file_names:
    37        img = tifffile.imread(file_name)
    38        # Check that we are getting the same results
    39        tifffile_results.append(np.mean(img))
    40        # Print on the same line over and over
    41        # print(f"tifffile: {os.path.dirname(file_name)}", end="\r")
    42    end = time.time()
    43    print(f"tifffile: {end - start}")
    44
    45    # imageio
    46    start = time.time()
    47    imageio_results = []
    48    for file_name in file_names:
    49        img = imageio.imread(file_name)
    50        # Check that we are getting the same results
    51        imageio_results.append(np.mean(img))
    52        # Print on the same line over and over
    53        # print(f"imageio: {os.path.dirname(file_name)}", end="\r")
    54    end = time.time()
    55    print(f"imageio: {end - start}")
    56
    57    # skimage
    58    start = time.time()
    59    skimage_results = []
    60    for file_name in file_names:
    61        img = skimage.io.imread(file_name)
    62        # Check that we are getting the same results
    63        skimage_results.append(np.mean(img))
    64        # Print on the same line over and over
    65        # print(f"skimage: {os.path.dirname(file_name)}", end="\r")
    66    end = time.time()
    67    print(f"skimage: {end - start}")
    68
    69    # Check that we are getting the same results
    70    assert cv2_results == tifffile_results
    71    assert cv2_results == imageio_results
    72    assert cv2_results == skimage_results
    73
    74
    75if __name__ == "__main__":
    76    main()

def main(): View Source

    16def main():
    17    # Get all DAPI .tif file names in the directory
    18    file_path = "/mnt/HDSCA_Development/data/0B58703"
    19    file_names = [os.path.join(file_path, f"Tile{i:06d}.tif") for i in range(100, 200)]
    20
    21    print(f"Number of files: {len(file_names)}")
    22    # cv2
    23    start = time.time()
    24    cv2_results = []
    25    for file_name in file_names:
    26        img = cv2.imread(file_name, cv2.IMREAD_UNCHANGED)
    27        # Check that we are getting the same results
    28        cv2_results.append(np.mean(img))
    29        # Print on the same line over and over
    30        # print(f"cv2: {os.path.basename(file_name)}")
    31    end = time.time()
    32    print(f"cv2: {end - start}")
    33
    34    # tifffile
    35    start = time.time()
    36    tifffile_results = []
    37    for file_name in file_names:
    38        img = tifffile.imread(file_name)
    39        # Check that we are getting the same results
    40        tifffile_results.append(np.mean(img))
    41        # Print on the same line over and over
    42        # print(f"tifffile: {os.path.dirname(file_name)}", end="\r")
    43    end = time.time()
    44    print(f"tifffile: {end - start}")
    45
    46    # imageio
    47    start = time.time()
    48    imageio_results = []
    49    for file_name in file_names:
    50        img = imageio.imread(file_name)
    51        # Check that we are getting the same results
    52        imageio_results.append(np.mean(img))
    53        # Print on the same line over and over
    54        # print(f"imageio: {os.path.dirname(file_name)}", end="\r")
    55    end = time.time()
    56    print(f"imageio: {end - start}")
    57
    58    # skimage
    59    start = time.time()
    60    skimage_results = []
    61    for file_name in file_names:
    62        img = skimage.io.imread(file_name)
    63        # Check that we are getting the same results
    64        skimage_results.append(np.mean(img))
    65        # Print on the same line over and over
    66        # print(f"skimage: {os.path.dirname(file_name)}", end="\r")
    67    end = time.time()
    68    print(f"skimage: {end - start}")
    69
    70    # Check that we are getting the same results
    71    assert cv2_results == tifffile_results
    72    assert cv2_results == imageio_results
    73    assert cv2_results == skimage_results