4

私は OpenCV 2.4.1 と Python 2.7 を使用しています (Visual Studio Python Tools で実行されている EPD 7.3 を考えました)。OpenCV Load() 関数を使用して xml ファイルを読み込もうとしています:

import cv2
import numpy as np

reprojectionError=cv2.Load("calib.xml")

しかし、私はこのエラーが発生しています:

    reprojectionError=cv2.Load("calib.xml")
AttributeError: 'module' object has no attribute 'Load'
Press any key to continue . . .

何か案は?

4

5 に答える 5

4

私も同じエラーがありました。検索した後、OpenCVバグトラッカーでそれに関する議論を見つけました。彼らの議論から、私が理解したのは(もちろん、いくつかのエンコーディングなど、理解できなかったことがたくさんあります)、OpenCVは有効なxmlファイルのみをロードするということです。

有効な手段は、IplImage、cvSeq などの OpenCV 構造体である必要があります。それ以外の場合、いくつかのエラーがスローされます。

haarcascade xml ファイルをロードしようとすると、NULL が返されました。

TypeError: OpenCV returned NULL

任意の xml を読み込もうとしたとき (OpenCV とは関係なく、どこかから取得):

error: The node does not represent a user object (unknown type?)

最後に、画像をロードし、cv.Save を使用して xml ファイルに保存し、次のようにロードしようとしました。

import cv2
import numpy as np

img = cv2.cv.LoadImage('0.jpg',0)
cv2.cv.Save('sof.xml',img)
e=cv2.cv.Load("sof.xml")

print e

そして、正しい次の結果が得られました。

<iplimage(nChannels=1 width=300 height=300 widthStep=300 )>

これらの例とバグトラッカーの議論から私が理解したのは、OpenCV は有効な OpenCV 構造を含む xml ファイルのみをロードするということです。(そして、それは良いオプションです。OpenCV がそこにあるすべての xml ファイルをロードしようとするのはなぜですか? 関連するファイルのみを開く必要があります)。

これは私がこれについて知っていることです。それが役に立てば幸い !!!

于 2012-06-14T09:23:09.913 に答える
1

python cv(cv2ではなく)APIのLoad()を使用して、cvキャリブレーションアプリによって保存されたXMLファイルからカメラマトリックスと歪み係数をロードできることがわかりました。ファイル名と、そのファイル内のオブジェクトの名前を指定する必要があります。

import cv
import numpy

calib_filename = '/path/to/my/output/of/calibration.xml'

camera_matrix = numpy.asarray(cv.Load(calib_filename, cv.CreateMemStorage(), 'camera_matrix'))
dist_coeffs = numpy.asarray(cv.Load(calib_filename, cv.CreateMemStorage(), 'distortion_coefficients'))

numpy.asarray()でラップして、cv.Load()によって返されるCvMatをnumpy配列cv2-styleに変換することに注意してください。これは、cv2で作業しようとしているように見えるためです(私もそうです)。

Linux上のOpenCV2.4.3、python2.7で私のために働いた。

于 2013-02-19T22:29:37.453 に答える
0

同様の問題がありました。リリース モードでデバッグ ライブラリを使用したため、エラーが発生しました。debug lib(xd.lib) を release lib (x.lib) に変更すると、うまくいきました。

新安

于 2013-12-25T10:50:50.287 に答える