How to resize a tiff image with multiple channels?

2024/9/21 3:25:21

I have a tiff image of size 21 X 513 X 513 where (513, 513) is the height and width of the image containing 21 channels. How can I resize this image to 21 X 500 X 375?

I am trying to use PILLOW to do so. But can't figure out if I am doing something wrong.

>>> from PIL import Image
>>> from tifffile import imread
>>> img = Image.open('new.tif')
>>> img<PIL.TiffImagePlugin.TiffImageFile image mode=F size=513x513 at 0x7FB0C8E5B940>>>> resized_img = img.resize((500, 375), Image.ANTIALIAS)
>>> resized_img<PIL.Image.Image image mode=F size=500x375 at 0x7FB0C8E5B908>>>> resized_img.save('temp.tif')>>> img = imread('temp.tif')
>>> img.shape(500, 375)

The channel information is lost here.

Answer

Try using tifffile and scikit-image:

from tifffile import imread, imwrite
from skimage.transform import resizedata = imread('2009_003961_SEG.tif')
resized_data = resize(data, (375, 500, 21))
imwrite('multi-channel_resized.tif', resized_data, planarconfig='CONTIG')

The file 2009_003961_SEG.tif linked in comment98601187_55975161 is not a multi-channel 513x513x21 image. Instead the file contains 513 images of size 513x21. The tifffile library will read the series of images in the file and return it as a numpy array of shape 513x513x21.

To resize the numpy array to 375x500x21, use skimage.transform.resize (or scipy.ndimage.zoom). It might be faster to resize the 21 channels separately.

To write a TIFF file containing a single multi-channel image of size 375x500x21 using tifffile, specify the planarconfig parameter. Not many libraries or apps can handle such files.

https://en.xdnf.cn/q/72276.html

Related Q&A

Losing elements in python code while creating a dictionary from a list?

I have some headache with this python code.print "length:", len(pub) # length: 420pub_dict = dict((p.key, p) for p in pub)print "dict:", len(pub_dict) # length: 163If I understand t…

How to set Font size or Label size to fit all device

How to set kivy font size or label size so that it will fit all phone-device screen? (fit by means does not overlap with the boundary, rectangle, or even the screen)I know the Buttons and some other W…

Using tweepy to access Twitters Streaming API

Im currently having trouble getting example code for using tweepy to access Twitters Streaming API to run correctly (err...or at least how I expect it to run). Im using a recent clone of tweepy from Gi…

Jupyter notebook, how to run multiple cells simultaneously?

I defined a python function which run a bash script. Lets say the function is: calc(x,y,z). If I run this function in python with some variables,>>> calc(1,2,3)It generates a C code which simu…

How to make a slice of DataFrame and fillna in specific slice using Python Pandas?

The problem: let us take Titanic dataset from Kaggle. I have dataframe with columns "Pclass", "Sex" and "Age". I need to fill NaN in column "Age" with a median f…

Pythons difflib SequenceMatcher speed up

Im using difflib SequenceMatcher (ratio() method) to define similarity between text files. While difflib is relatively fast to compare a small set of text files e.g. 10 files of 70 kb on average compar…

create an asymmetric colormap

I am creating a colormap to map colors in a folium choropleth map, using code from here:from branca.colormap import linearcolormap = linear.RdBu.scale(df.MyValue.min(),df.MyValue.max())colormapAs you c…

NLTK - Get and Simplify List of Tags

Im using the Brown Corpus. I want some way to print out all the possible tags and their names (not just tag abbreviations). There are also quite a few tags, is there a way to simplify the tags? By sim…

PolynomialFeatures object has no attribute predict

I want to apply k-fold cross validation on the following regression models:Linear Regression Polynomial Regression Support Vector Regression Decision Tree Regression Random Forest RegressionI am able t…

Error module object has no attribute freetype

I am using this code Link but it displays error of module object has no attribute i tried to pip install freetype but nothing happened. Can anyone please guide me with this.import cv2 import numpy as …