Depth error in 2D image with OpenCV Python

前端 未结 3 807
無奈伤痛
無奈伤痛 2021-01-17 07:14

I am trying to compute the Canny Edges in an image (ndarray) using OpenCV with Python.

slice1 = slices[15,:,:]
slice1 = slice1[40:80,60:100]
print slice1.sha         


        
相关标签:
3条回答
  • 2021-01-17 08:05

    Slice1 will need to be casted or created as a uint8. CV_8U is just an alias for the datatype uint8.

    import numpy as np
    slice1Copy = np.uint8(slice1)
    slicecanny = cv2.Canny(slice1Copy,1,100)
    
    0 讨论(0)
  • 2021-01-17 08:09

    In order to avoid losing precision while changing the data type to uint8, you can first adapt the scale to the 255 format just doing:

    (image*255).astype(np.uint8)
    

    Here I'm considering that image is a numpy array and np stand for numpy. I hope it can help someone!

    0 讨论(0)
  • 2021-01-17 08:18

    You can work around this error by saving slice1 to a file and then reading it

    from scipy import ndimage, misc
    misc.imsave('fileName.jpg', slice1)
    image = ndimage.imread('fileName.jpg',0)
    slicecanny = cv2.Canny(image,1,100)
    

    This is not the most elegant solution, but it solved the problem for me

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