OpenCV JavaScript版本,使用getPerspectiveTransform,PerspectiveTransform方法。
JavaScript和python版本不同的是Mat的创建方法不同,python会在内部自动把数据转换成Mat类,也JavaScript不会,所以刚开始没有找到JavaScript创建Mat方法,走了很多弯路。
这只是测试代码,没有使用项目中真实的数据,所有有一定的偏差。
如果有什么错误,欢迎纠正。
下面上代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello OpenCV.js</title> </head> <body> <h2>Hello OpenCV.js</h2> <h2>getPerspectiveTransform,PerspectiveTransform方法使用</h2> <p id="status">OpenCV.js is loading...</p> <div> <button onClick="myclick()">输出结果</button> </div> <script type="text/javascript"> function myclick() { //代码 getPerspectiveTransform //创建数据 let srcTri = cv.matFromArray(4, 1, cv.CV_32FC2, [56, 65, 368, 52, 28, 387, 389, 390]); let dstTri = cv.matFromArray(4, 1, cv.CV_32FC2, [0, 0, 300, 0, 0, 300, 300, 300]); //转换的数据 let M = cv.getPerspectiveTransform(srcTri, dstTri); console.log("getPerspectiveTransform M", M); //==== PerspectiveTransform ====== //point点的数据一定要是一维的,opencv会自己去处理 let points = [ 1, 2, 3, 4, 5, 6, 7, 8 ]; //原数据 points = cv.matFromArray(4,1,cv.CV_32FC2,points); //转换后的数据 let points_trans = new cv.Mat(); cv.perspectiveTransform(points, points_trans,M); console.log("points", points); console.log("points_trans", points_trans); } function onOpenCvReady() { document.getElementById('status').innerHTML = 'OpenCV.js is ready.'; } </script> <script async src="https://docs.opencv.org/4.x/opencv.js" onload="onOpenCvReady();" type="text/javascript"></script> <script src="https://docs.opencv.org/4.x/utils.js" type="text/javascript"></script> </body> </html>
getPerspectiveTransform结果
perspectiveTransform结果
沒有留言:
張貼留言
你好!歡迎你在我的 Blog 上留下你寶貴的意見。