pyvips icon indicating copy to clipboard operation
pyvips copied to clipboard

How to crop a region in tiff

Open Fighting-bruceCHN opened this issue 1 year ago • 5 comments

Hi,

I'm using pyvips for image registration on whole slide images (WSI). I have successfully generated both the target and warped source images, both in TIFF format and of the same size (23157 x 47374).

I need to crop the same region from these two TIFF images and save the cropped areas as PNG or JPG files, so I can easily visualize the registration results on a remote server. Could you please guide me on how to accomplish this?

Thank you for your great library.

Fighting-bruceCHN avatar Sep 02 '24 10:09 Fighting-bruceCHN

Hello @Fighting-bruceCHN,

Just crop the matching areas, for example:

a = pyvips.Image.new_from_file("file1.tif")
b = pyvips.Image.new_from_file("file2.tif")

tile1 = a.crop(10, 10, 512, 512)
tile2 = b.crop(10, 10, 512, 512)

tile1.write_to_file("tile1.jpg")
tile2.write_to_file("tile2.jpg")

If you write your tiff image in tiled format this will be much faster.

jcupitt avatar Sep 02 '24 10:09 jcupitt

Ah do you want users to be able to scroll around the images and compare the alignment?

I would save both images as deepzoom, perhaps with:

a = pyvips.Image.new_from_file("file1.tif")
b = pyvips.Image.new_from_file("file2.tif")

tile1.dzsave("file1")
tile2.dzsave("file2")

Then make a web page with openseadragon that loads both images:

http://openseadragon.github.io/examples/multi-image/

You'll need to add some UI to control the opacity of your two layers. Now users will be able to interactively view the images and check for alignment issues.

jcupitt avatar Sep 02 '24 11:09 jcupitt

pyvips.error.Error: no such operation dzsave VipsOperation: class "dzsave" not found

tubp01 avatar Nov 05 '24 06:11 tubp01

linux下报这个错

tubp01 avatar Nov 05 '24 06:11 tubp01

Please open a new issue for a new question.

(your libvips has probably been built without libarchive)

jcupitt avatar Nov 05 '24 09:11 jcupitt