python 将SVS文件转换为TIFF图像
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 将SVS文件转换为TIFF图像相关的知识,希望对你有一定的参考价值。
# -*- coding: utf-8 -*-
__author__ = "Pingjun Chen"
__email__ = "chenpingjun@gmx.com"
import os, sys, pdb
import numpy as np
from scipy import misc
import matplotlib.pyplot as plt
from skimage import io
import openslide
import argparse
def save_svs_img(slide_filename, tile_size=8192):
slide_file = openslide.OpenSlide(slide_filename)
slide_width, slide_height = slide_file.dimensions
# tile_arr = []
slide_img = np.zeros((slide_height, slide_width, 3), np.uint8)
x_tile_num = int(np.floor((slide_width-1)/tile_size)) + 1
y_tile_num = int(np.floor((slide_height-1)/tile_size)) + 1
for iy in range(y_tile_num):
for ix in range(x_tile_num):
start_x = ix * tile_size
len_x = tile_size if (ix + 1) * tile_size < slide_width else (slide_width - start_x)
start_y = iy * tile_size
len_y = tile_size if (iy + 1) * tile_size < slide_height else (slide_height - start_y)
# tile_arr.append(((start_x, start_y), (len_x, len_y)))
cur_tile = slide_file.read_region(location=(start_x, start_y), level=0, size=(len_x, len_y))
slide_img[start_y:start_y+len_y, start_x:start_x+len_x, :] = np.array(cur_tile)[:,:,:3]
slide_savename = os.path.splitext(slide_filename)[0] + '.tif'
# misc.imsave(slide_savename, slide_img)
io.imsave(slide_savename, slide_img)
def batch_convert_svs(slide_dir, tile_size=8192):
svs_list = [svs_file for svs_file in os.listdir(slide_dir) if svs_file.endswith(".svs")]
for ind, svs_file in enumerate(svs_list):
print("Processing {}/{}: {}".format(ind+1, len(svs_list), svs_file))
save_svs_img(svs_file, tile_size)
def set_args():
parser = argparse.ArgumentParser(description="load svs")
parser.add_argument("--filedir", type=str, default="./")
parser.add_argument("--filename", type=str, default="124180.svs")
parser.add_argument("--tile-size", type=int, default=4096)
args = parser.parse_args()
return args
if __name__ == '__main__':
args = set_args()
# save_svs_img(args.filename, args.tile_size)
batch_convert_svs(args.filedir, args.tile_size)
以上是关于python 将SVS文件转换为TIFF图像的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在不将完整文件加载到内存的情况下将 tiff 图像转换为 Base64
在python中将tiff转换为jpeg
在.Net中将TIFF文件转换为PNG
如何将 tiff 图像保存到新的 npy 文件中?
在 .NET 2.0 中将位图转换为一个多页 TIFF 图像
将不同的图片格式(jpg、gif、png等)转换为TIFF格式