Je travaille sur une application avec Java qui corrige la perspective (également appelée keystoning). Pour ce faire, j'utilise Bytedeco's JavaCV. En se référant à documentations et plusieurs autres websites et manuels en ligne, j'ai essayé de le faire en utilisant deux méthodes OpenCV, warpPerspective
et cvGetPerspectiveTransform
. Plus précisément, voici mon code:JavaCV Perspective Transform Donne Erreur
public static void main(String[] args) {
IplImage img = new IplImage(imread("src/res/mona-lisa.jpg"));
IplImage img2 = new IplImage(3);
CvMat mmat = cvCreateMat(3, 3, CV_32FC1);
CvPoint2D32f c1 = new CvPoint2D32f(4);
CvPoint2D32f c2 = new CvPoint2D32f(4);
c1.position(0).put(0, 0);
c1.position(1).put(400, 0);
c1.position(2).put(0, 300);
c1.position(3).put(400, 300);
c2.position(0).put(0, 0);
c2.position(1).put(img.width(), 0);
c2.position(2).put(0, img.height());
c2.position(3).put(img.width(), img.height());
mmat = cvGetPerspectiveTransform(c1, c2, mmat);
cvWarpPerspective(img, img2, mmat);
cvNamedWindow("Image", 1);
cvShowImage("Image", img);
cvWaitKey();
}
Si j'exécute ce code, la console me donne un « OpenCV Erreur: Argument incorrect (type tableau inconnu) en cv :: cvarrToMat, fichier src \ matrix.cpp, ligne 880" , et l'un d'entre eux:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x00007ffb1e24a1c8, pid=2020, tid=12660
#
# JRE version: Java(TM) SE Runtime Environment (8.0_66-b18) (build 1.8.0_66-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.66-b18 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [KERNELBASE.dll+0x2a1c8]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# ...
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Cependant, je sais que mona-lisa.jpg
est lu correctement parce que si je saute tout le processus mmat
il rend l'image originale correctement. J'essaye de réaliser quelque chose semblable à this.
Des pensées?
Pouvez-vous me donner plus d'informations sur le "long problème"? –
En outre, le img, img était une faute de frappe dans le poste. C'était censé être img2. +1 pour me rappeler à ce sujet. –
son un problème connu est ce que je veux dire au moins quand j'essayais 1-2 ans - donc il ne disparaîtra pas - si vous êtes susceptible d'ocv voir leurs wrappers java etc - Je ne suis plus dans – gpasch