PIL.Image.DecompressionBombError: Image size exceeds limit of pixels

dronedb.app or another Cloud Service provider?

Hi Saijin,

Please download it from this location:

1 Like

Dang… 450MP image! I’m surprised it worked at all!

Extent
image

1:1
image

Is it possible for you to downsize it a bit? Looks like 180MP is PIL’s cap at the moment for whatever reason.

1 Like

Hi Saijin,

I am surprised too. Had tried to process this image using following command:

docker run -ti --rm -v /home/ubuntu/datasets:/datasets opendronemap/odm --project-path /datasets project --dsm --orthophoto-resolution 2

Please suggest, if anything is incorrect?

1 Like

I mean you’d have to resize it before passing it to OpenDroneMap. Likely with QGIS.

Are these actual images, or are you trying to composite already composited orthophotos? If it is the latter, you likely will not have sufficient overlap/sidelap and you’re better off using a Mosaic analysis in something like QGIS (which is designed to stitch images together with minimal overlap/sidelap).

These are actual raw images and resizing is not an option because camera parameter needed for DSM calculation will not be applicable.

1 Like

Oh, wow.

Quite the sensor platform! Awesome stuff!

At this point my instinct is we may have to address this upstream in PIL, but I’m out of my depth so that is conjecture.

Please stand by until someone more knowledgeable comes along.

The limitation is hardcoded in the PIL package, we can edit MAX_IMAGE_PIXELS = None in PIL/Image.py to disable it

2 Likes

Is PIL liable to silently break with that option disabled? Will/can it overflow or something?

This variable is only used to check decompression bomb, so it should not break anything, but memory issues could happen since there is no limitation of the image size.

1 Like

Hm, maybe we can patch our ODM-included build for something like 500Mpx so it is capped high but still offers some protection…

1 Like

Hi Saijin,

I tried to build the Docker Image using Dockerfile but it get hangs after a while. Is it possible to share the updated Docker Image with fix?

1 Like

Uhhh… I can try. It’ll take me a while, never done this.

thanks

Yeah, I’m not sure how to modify the Dockerfile to patch the PIL library, so I think I’m going to have to tap out here.

ok, sooner the better it is…

Make the change to the file and then you can docker cp thé file into the correct location in docker image.

1 Like

That’s an awesome trick!

I was trying to attach the console to the docker session and then vi the Python file and… Yeah, I got nowhere haha

1 Like

Yeah, I’ve had to do it a lot here on the edges of the possible… .

I think you have to do a docker commit as well.

1 Like

Hi Both,

Just want to inform you again, initially referring GitHub Code tried to create Docker Image few times but every time the process got stuck. Later, when I simply tried to create DSM using Docker Image from DockerHub had this pixel limit issue.

To summarize, in order to ahead need your support for the following:

  • Provide with updated Docker Image wherein Pixel Limit is not an issue
  • Details Step & Code to create Docker Image