如何用JavaScript修复图像透视失真和旋转?

如何用JavaScript修复图像透视失真和旋转?,javascript,node.js,image-processing,perspective,distortion,Javascript,Node.js,Image Processing,Perspective,Distortion,我有一些用手机拍摄的照片。有没有JavaScript库可以将纸张的照片拉直并展平?例如,我想创建一个没有任何失真的矩形图像 换句话说我想知道如何用JavaScript修复透视失真和旋转 例如,我从文章中找到以下示例图像: 如何用javascript修复这种类型的图像?可以帮您解决。甚至还有一个透视失真的例子。您必须自己添加/计算源点和目标点。看起来就是您要寻找的 创建函数将点从一个任意四边形映射到另一个任意四边形,反之亦然 不需要任何额外的npm包,这可以通过创建一个不规则的裁剪框来实现,首先

我有一些用手机拍摄的照片。有没有JavaScript库可以将纸张的照片拉直并展平?例如,我想创建一个没有任何失真的矩形图像

换句话说我想知道如何用JavaScript修复透视失真和旋转

例如,我从文章中找到以下示例图像:

如何用javascript修复这种类型的图像?

可以帮您解决。甚至还有一个透视失真的例子。您必须自己添加/计算源点和目标点。

看起来就是您要寻找的

创建函数将点从一个任意四边形映射到另一个任意四边形,反之亦然


不需要任何额外的npm包,这可以通过创建一个不规则的裁剪框来实现,首先将图像加载到画布中,在图像上调整4个裁剪点,将部分放入规则的矩形画布中

有关详细的代码和步骤,请遵循此链接

这是演示


canvas
可能有处理图像所需的工具-但是,等等,您将其标记为node.js,因此没有可用的浏览器功能-您将需要一些非常智能的工具,它必须检测问题并在没有用户交互的情况下修复问题这要么太宽,不适合堆栈溢出,或者您要求的是已经制作好的可以实现这一点的东西,这与堆栈溢出无关。@JaromandaX,是的,我需要一种不需要用户交互的方式。在java上实现。计算四元数,然后旋转图像。任何问题-阿斯基也非常需要!!!你知道怎么做了吗?
let dst = new cv.Mat();
let dsize = new cv.Size(imageHeight, imageWidth);
let srcTri = cv.matFromArray(4, 1, cv.CV_32FC2, pointsArray);
let dstTri = cv.matFromArray(4, 1, cv.CV_32FC2, [0, 0, imageHeight, 0, imageHeight, imageWidth, 0, imageWidth]);
let M = cv.getPerspectiveTransform(srcTri, dstTri);
cv.warpPerspective(src, dst, M, dsize, cv.INTER_LINEAR, cv.BORDER_CONSTANT, new cv.Scalar());
document.getElementById('imageInit').style.display = "none"
cv.imshow('imageResult', dst);