I tried to find contour with cv2 python library in a skeletonized image created with scikit-image and i got this error:
contours, hierarchy = cv2.findContours(skel,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
TypeError: <unknown> data type = 0 is not supported
My question is: What i have to do to convert to cv2 and viceversa?
I know that opencv use numpy.uint8 type to represent binary images instead scikit-image numpy.float64
I used also mahotas (numpy.bool) and pymorph libraries. How can i convert from scikit-image to these libraries and viceversa?
scikit-image (a.k.a. skimage ) is a collection of algorithms for image processing and computer vision.
colour images can be transformed to grayscale using skimage. color. rgb2gray() or be read as grayscale directly by passing the argument as_gray=True to skimage. io.
scikit-image (formerly scikits. image) is an open-source image processing library for the Python programming language. It includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more.
scikit-image
provides conversion routines between the different data-types that also correctly preserves scaling:
from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)
Update: the scikit-image user guide now has a more detailed section on this: http://scikit-image.org/docs/stable/user_guide/data_types.html#working-with-opencv
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With