Utilisation de liaisons JavaCPP pour OpenCV 3.1, code écrit en Scala. Les méthodes sont mappées presque exactement comme OpenCV 3.1 en C++. J'essaye de créer une matrice de transformation affine pour que je puisse déformer une image en utilisant des repères. Je sens que je suis mise pas correctement les valeurs du tapis, mais comment pourrais-je faireComment créer un OpenCV Mat de forme [3,2] pour une transformation affine?
java.lang.RuntimeException: /Users/saudet/projects/bytedeco/javacpp-presets/opencv/cppbuild/macosx-x86_64/opencv-3.1.0/modules/imgproc/src/imgwarp.cpp:6360:
error: (-215) src.checkVector(2, CV_32F) == 3 && dst.checkVector(2, CV_32F) == 3 in function getAffineTransform
at org.bytedeco.javacpp.opencv_imgproc.getAffineTransform(flandmarkTest.sc0.tmp)
at #worksheet#.H$lzycompute(flandmarkTest.sc0.tmp:82)
at #worksheet#.H(flandmarkTest.sc0.tmp:82)
at #worksheet#.get$$instance$$H(flandmarkTest.sc0.tmp:82)
at #worksheet#.#worksheet#(flandmarkTest.sc0.tmp:236)
Voici mon code, que: Cependant, la méthode échoue getAffineTransform
avec l'erreur suivante?
val landmarkM = new Mat()
landmarkM.put(new Scalar(outerEyeLeft(0),outerEyeLeft(1)))
landmarkM.put(new Scalar(outerEyeRight(0),outerEyeRight(1)))
landmarkM.put(new Scalar(nose(0),nose(1)))
val imgDim = img_grayscale.width()
val refM = new Mat()
refM.put(new Scalar(template(1)(0)*imgDim,template(1)(1)*imgDim))
refM.put(new Scalar(template(4)(0)*imgDim,template(4)(1)*imgDim))
refM.put(new Scalar(template(5)(0)*imgDim,template(5)(1)*imgDim))
refM.checkVector(2) // returns -1
landmarkM.checkVector(2) // returns -1
val H: Mat = getAffineTransform(landmarkM, refM)