# How to resize an extremely large image

Hi, I'm using Python 3.4.3 and OpenCV 3.0.0. While I'm trying to resize a very large RGB image (107162,79553,3) using the following code:

import cv2
image = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)


I got the error message "cv2.error: C:\opencv-3.0.0\source\modules\imgproc\src\imgwarp.cpp:3208: error: (-215) ssize.area() > 0 in function cv::resize" I did some further testing and realized this is an integer overflow problem because the code would work on image of the size (46340,46340,3) but not (46341,46341,3).I understand I can perform bloc processing but I'm still interested in knowing if there is a direct solution to this problem.

My naive thought is that if I can identify where exactly this int that gave me the trouble is, I can then go in and change it to int64. So my questions are : 1) Is this approach plausible? 2) If so, exactly what should I change to solve this? If not, how can I solve this problem?

edit retag close merge delete

Sort by » oldest newest most voted

I have try your code in C++ with opencv 3.0-dev and I have found same problem.

Mat bigg( 107162,79553,CV_8UC3),small;
resize(bigg, small,Size2d(107162/2,79553/2),0, 0,INTER_AREA);


Problem is size.area() is negative. What I have done (that''s not very nice at all) I have changed size value before size.area (for example 700,700 for size) and after size.area restore good value and after I have got a result in Mat small. So if you try to compile opencv from source you can comment this line. May be it would solve your problem

It looks like a bug may be you can report a ticket here

more

That sounds like a solution to me. I know exactly what I need to resize so I think I can probably just comment this out. I'll see if this will work. Thanks !

( 2015-08-14 03:48:20 -0500 )edit
2

I think you should report this as a bug, because this integer overflow should be dealt with :)

( 2015-08-14 04:19:01 -0500 )edit
1

After I commented out the line and rebuilt openCV, it did solve my problem. and Yes, I have followed LBerger's suggestion and reported a ticket.

( 2015-08-14 11:56:47 -0500 )edit

Official site

GitHub

Wiki

Documentation