如何将scikit映像转换为opencv2和其他库?

2024-06-06 16:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在用scikit image创建的骨架图像中使用cv2 python库查找轮廓,结果出现以下错误:

    contours, hierarchy = cv2.findContours(skel,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
TypeError: <unknown> data type = 0 is not supported

我的问题是:我要做什么才能转换成cv2和viceversa?

我知道opencv使用numpy.uint8类型来表示二进制图像,而不是scikit image numpy.float64

我还使用了mahotas(numpy.bool)和pymorph库。 如何从scikit映像转换到这些库和viceversa?


Tags: 图像imagenumpytreehierarchy错误scikitcv2
2条回答

这对我有用:

image = skimage.io.imread(mpath)
img = image[:, :, ::-1] # convert image from RGB (skimage) to BGR (opencv)
cv2.namedWindow('original', cv2.WINDOW_NORMAL)
cv2.imshow('original',img)

scikit-image提供不同数据类型之间的转换例程,这些例程还可以正确地保持缩放:

from skimage import img_as_ubyte

cv_image = img_as_ubyte(any_skimage_image)

更新:《scikit映像用户指南》现在有一个更详细的部分介绍这个:http://scikit-image.org/docs/stable/user_guide/data_types.html#working-with-opencv

相关问题 更多 >