Can I load a multi-frame TIFF through OpenCV?

前端 未结 3 721
别那么骄傲
别那么骄傲 2021-02-14 18:44

Anyone know if OpenCV is capable of loading a multi-frame TIFF stack? I\'m using OpenCV 2.2.0 with python 2.6.

相关标签:
3条回答
  • 2021-02-14 19:10

    While OpenCV can't open multi-frame TIFF files, you can open the image using PIL and then pass the data on to OpenCV. I haven't yet been able to get it working with the new "cv2" namespace

    tiff = Image.open('sample.tif')
    try:
        while 1:
            # Convert PIL image to OpenCV
            image = cv.CreateImageHeader(tiff.size, cv.IPL_DEPTH_8U, 1)
            cv.SetData(image, tiff.tostring()) # It's "tostring" and not "toString()"!
            # Do whatever you're going to do with OpenCV data
            tiff.seek(tiff.tell()+1)
    except EOFError:
        pass
    
    0 讨论(0)
  • 2021-02-14 19:13

    OpenCV is now capable of reading a multi-page TIFF using the imreadmulti function. See this page from the OpenCV 3.4 documentation:

    https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga4dd47c9ae3d55cc42286cff005825e31

    0 讨论(0)
  • 2021-02-14 19:17

    Unfortunately OpenCV does not support TIFF directories and is able to read only the first frame from multi-frame TIFF files.

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