1

最新のopenCVバージョンでpythonを使用してreprojectImageTo3D()を使用できません。「TypeError: disparity is not a numpy array」というメッセージが表示され続けます。もちろんiplImageです。

disparityImg = CreateImage( (320,240), IPL_DEPTH_32F, 1)
depthMapImg = CreateImage( (320,240), IPL_DEPTH_32F, 3)
depthMapImg = reprojectImageTo3D(disparityImg, Q)

しかし、iplImage の代わりに depthMapImg の配列を使用すると、「OpenCV エラー: アサーションに失敗しました (stype == CV_8UC1 || stype == CV_16SC1 || stype == CV_32SC1 || stype == CV_32FC1) in reprojectImageTo3D,.. ."

この後者のエラーは、データ型が配列と reprojectImageTo3D() の間で一致していないと思わせます。

どちらも機能しません。どうすればよいですか?

公式の reprojectImageTo3D() ドキュメントはこちら: http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#void%20reprojectImageTo3D%28InputArray%20disparity,%20OutputArray%20_3dImage,%20InputArray%20Q,%20bool%20handleMissingValues, %20int%20ddepth%29

4

1 に答える 1

1

よく見てください: cv2.reprojectImageTo3D (または、cv.Reproject...) です。

古い(非推奨の)cv APIと新しいcv2 APIを混在させようとしているようです。しないでください!

cv はラップされた IplImages を使用しており、cv2 は numpy 配列を使用しています

将来のバージョンではサポートされないため、古い cv api は破棄してください。Ipliimages を使用しているコードを避ける

于 2013-11-01T08:44:06.640 に答える