OpenCV resize fails on large image with “error: (-215) ssize.area() > 0 in function cv::resize”

后端 未结 13 2105
醉酒成梦
醉酒成梦 2021-01-01 10:08

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

import         


        
相关标签:
13条回答
  • 2021-01-01 10:16

    Turns out for me this error was actually telling the truth - I was trying to resize a Null image, which was usually the 'last' frame of a video file, so the assertion was valid.

    Now I have an extra step before attempting the resize operation, which is to do the assertion myself:

    def getSizedFrame(width, height):
    """Function to return an image with the size I want"""    
        s, img = self.cam.read()
    
        # Only process valid image frames
        if s:
                img = cv2.resize(img, (width, height), interpolation = cv2.INTER_AREA)
        return s, img
    

    Now I don't see the error.

    0 讨论(0)
  • 2021-01-01 10:18

    I was working with 3 files: The python script, the image, and the trained model.

    Everything worked when I moved these 3 files into their own folder instead of in the directory with the other python scripts.

    0 讨论(0)
  • 2021-01-01 10:19

    I am having OpenCV version 3.4.3 on MacOS. I was getting the same error as above.

    I changed my code from

    frame = cv2.resize(frame, (0,0), fx=0.5, fy=0.5)   
    

    to

    frame = cv2.resize(frame, None, fx=0.5, fy=0.5)    
    

    Now its working fine for me.

    0 讨论(0)
  • 2021-01-01 10:21

    I know this is a very old thread but I had the same problem which was due spaces in the images names.

    e.g.

    Image name: "hello o.jpg"

    weirdly, by removing the spaces the function worked just fine.

    Image name: "hello_o.jpg"

    0 讨论(0)
  • 2021-01-01 10:22

    For me the following work-around worked:

    • split the array up into smaller sub arrays
    • resize the sub arrays
    • merge the sub arrays again

    Here the code:

    def split_up_resize(arr, res):
        """
        function which resizes large array (direct resize yields error (addedtypo))
        """
    
        # compute destination resolution for subarrays
        res_1 = (res[0], res[1]/2)
        res_2 = (res[0], res[1] - res[1]/2)
    
        # get sub-arrays
        arr_1 = arr[0 : len(arr)/2]
        arr_2 = arr[len(arr)/2 :]
    
        # resize sub arrays
        arr_1 = cv2.resize(arr_1, res_1, interpolation = cv2.INTER_LINEAR)
        arr_2 = cv2.resize(arr_2, res_2, interpolation = cv2.INTER_LINEAR)
    
        # init resized array
        arr = np.zeros((res[1], res[0]))
    
        # merge resized sub arrays
        arr[0 : len(arr)/2] = arr_1
        arr[len(arr)/2 :] = arr_2
    
        return arr
    
    0 讨论(0)
  • 2021-01-01 10:22

    Turns out I had a .csv file at the end of the folder from which I was reading all the images. Once I deleted that it worked alright

    Make sure that it's all images and that you don't have any other type of file

    0 讨论(0)
提交回复
热议问题