gpt4 book ai didi

JavaCV 透视变换给出错误

转载 作者:行者123 更新时间:2023-12-01 10:38:36 27 4
gpt4 key购买 nike

我正在开发一个使用 Java 的应用程序,该应用程序可以纠正透视(也称为梯形校正)。为此,我使用 Bytedeco's JavaCV 。引用documentations和其他几个websites和在线手册,我尝试使用两种 OpenCV 方法来做到这一点,warpPerspectivecvGetPerspectiveTransform。更具体地说,这是我的代码:

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();
}

如果我执行该代码,控制台会显示“OpenCV 错误:cv::cvarrToMat 中的错误参数(未知数组类型),文件 src\matrix.cpp,第 880 行”,以及以下之一:

#
# 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.
#

但是,我知道 mona-lisa.jpg 正在被正确读取,因为如果我跳过所有 mmat 过程,那么它会正确渲染原始图像。

我正在尝试实现类似于 this 的目标.

有什么想法吗?

最佳答案

这不是应该将结果存储在不同的图像(img2)中吗?

cvWarpPerspective(img, img, mmat);

还有关于崩溃 - 这是一个很长的问题,有人建议它与确定变量的范围有关。也许您可以查看最新的创新

关于JavaCV 透视变换给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com