fix the perf tests of OpenCV.js so that it can run on Node.js successfully
authorlionkun <871518554@qq.com>
Wed, 24 Mar 2021 08:34:22 +0000 (16:34 +0800)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 27 Mar 2021 21:52:44 +0000 (21:52 +0000)
17 files changed:
modules/js/perf/base.js
modules/js/perf/perf_helpfunc.js
modules/js/perf/perf_imgproc/perf_blur.js
modules/js/perf/perf_imgproc/perf_cvtcolor.js
modules/js/perf/perf_imgproc/perf_dilate.js
modules/js/perf/perf_imgproc/perf_erode.js
modules/js/perf/perf_imgproc/perf_filter2D.js
modules/js/perf/perf_imgproc/perf_gaussianBlur.js
modules/js/perf/perf_imgproc/perf_medianBlur.js
modules/js/perf/perf_imgproc/perf_pyrDown.js
modules/js/perf/perf_imgproc/perf_remap.js
modules/js/perf/perf_imgproc/perf_resize.js
modules/js/perf/perf_imgproc/perf_scharr.js
modules/js/perf/perf_imgproc/perf_sobel.js
modules/js/perf/perf_imgproc/perf_threshold.js
modules/js/perf/perf_imgproc/perf_warpAffine.js
modules/js/perf/perf_imgproc/perf_warpPerspective.js

index 3948f21254e179c971ba08ec3abcc1474ebf4baf..f44b8e7f20b9c661ef1a38a3b000481aa5b497d5 100644 (file)
@@ -1,5 +1,10 @@
 if (typeof window === 'undefined') {
   var cv = require("../opencv");
+  if (cv instanceof Promise) {
+    loadOpenCV();
+  } else {
+    cv.onRuntimeInitialized = perf;
+  }
 }
 
 let gCvSize;
@@ -24,6 +29,10 @@ function getCvSize() {
   return gCvSize;
 }
 
+async function loadOpenCV() {
+  cv = await cv;
+}
+
 if (typeof window === 'undefined') {
   exports.getCvSize = getCvSize;
 }
\ No newline at end of file
index e42f4ad8071add13a358ddb0ff6faeec98380c1f..c2ad7f2e0f87de188fac73c92f8c3670835e29b2 100644 (file)
@@ -1,3 +1,10 @@
+const isNodeJs = (typeof window) === 'undefined'? true : false;
+
+if(isNodeJs) {
+  var Base = require("./base");
+  global.getCvSize = Base.getCvSize;
+}
+
 var fillGradient = function(cv, img, delta=5) {
   let ch = img.channels();
   console.assert(!img.empty() && img.depth() == cv.CV_8U && ch <= 4);
@@ -56,8 +63,8 @@ var smoothBorder = function(cv, img, color, delta=5) {
 
 var cvtStr2cvSize = function(strSize) {
   let size;
-
   let cvSize = getCvSize();
+
   switch(strSize) {
     case "127,61": size = cvSize.szODD;break;
     case '320,240': size = cvSize.szQVGA;break;
index 59712fb478f3befc876597103cf04952ca4b8459..66c5f240e7f8b340b4f1976f4dd4f2007cc9e694 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index b5007985cc2664b6b8c66fe8b797231387572423..fbae5d1bca26ffabf15896bcb3340b99eb524efa 100644 (file)
@@ -17,7 +17,11 @@ function perf() {
   if (isNodeJs) {
     global.cv = cv;
     global.combine = HelpFunc.combine;
-    global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+    global.constructMode = HelpFunc.constructMode;
+    global.log = HelpFunc.log;
+    global.decodeParams2Case = HelpFunc.decodeParams2Case;
+    global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+    global.addKernelCase = HelpFunc.addKernelCase;
     global.cvSize = Base.getCvSize();
   } else {
     enableButton();
@@ -25,7 +29,7 @@ function perf() {
   }
   let totalCaseNum, currentCaseId;
 
-  //extra color conversions supported implicitly
+  // extra color conversions supported implicitly
   {
     cv.CX_BGRA2HLS      = cv.COLOR_COLORCVT_MAX + cv.COLOR_BGR2HLS,
     cv.CX_BGRA2HLS_FULL = cv.COLOR_COLORCVT_MAX + cv.COLOR_BGR2HLS_FULL,
index c4e14c7be2a6dc203d52ea2c0d64c0cc3695c80b..5b6cd016821e93f250cfe8ba77d6587fe633b6ae 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index 95aba6fa218d2cac32ee8f9fb51fd8d58ad108c0..8915ead40f917e1152dd30be2af9c7e716d5d42c 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index d92dc2b55af76db82b3d776200297e2f46e8e90b..4602befcbdad86b6f932f189f21625630b29df7d 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index 33c5401a7ed091584623cec51e2fab8dae103ace..b59aa83b84d7d426ee78c2504de7eb7f77755317 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index 69b7ba3ead0d51d2b1fbc2d8f920fb49b6471492..333bc8424c6a8f42efc08d52d8a7a78052b677ac 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index a98b109ade70415a623797a711108b529fc6c6a5..957ac7684d81dc64b60b7c1f5551b639eb221658 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index fe2e5d75411b088068d39e76df2a903834189267..1aa69ecef75e31d0029612e1c21658bc5e0dc8fa 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index 3eef30f0e3f890336a9fe66d41036ab3fc1d6505..5262d22489f404ad0e40889806ecf54353694570 100644 (file)
@@ -17,7 +17,11 @@ function perf() {
   if (isNodeJs) {
     global.cv = cv;
     global.combine = HelpFunc.combine;
-    global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+    global.fillGradient = HelpFunc.fillGradient;
+    global.log = HelpFunc.log;
+    global.decodeParams2Case = HelpFunc.decodeParams2Case;
+    global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+    global.addKernelCase = HelpFunc.addKernelCase;
     global.cvSize = Base.getCvSize();
   } else {
     enableButton();
index a76a93078c2b1946755bcaf4a5c0c904c074c8fe..4726e76312a21699ff96fad119ce8e4af2d6f54d 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index b7064e852ad8a59b7a17ac69b109e4dc003ed73b..ddc09bb8f635072ea771a0efd3f03c2c611849a1 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
     if (isNodeJs) {
       global.cv = cv;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase;
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index 381ddaeade52ea4b0b624890d4789528387cd449..629628748dcd9a1632bc81419319205fab77ae3a 100644 (file)
@@ -17,7 +17,10 @@ function perf() {
   if (isNodeJs) {
     global.cv = cv;
     global.combine = HelpFunc.combine;
-    global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+    global.log = HelpFunc.log;
+    global.decodeParams2Case = HelpFunc.decodeParams2Case;
+    global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+    global.addKernelCase = HelpFunc.addKernelCase;
     global.cvSize = Base.getCvSize();
   } else {
     enableButton();
index c63cd60e61ecf068f43167637efe272b697f2eb4..dc3cf67af4e9bd5f590b0ad210dd8d8d30bc1128 100644 (file)
@@ -16,8 +16,13 @@ function perf() {
     console.log('opencv.js loaded');
     if (isNodeJs) {
       global.cv = cv;
+      global.fillGradient = HelpFunc.fillGradient;
+      global.smoothBorder = HelpFunc.smoothBorder;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();
index dcde2fb22cc2492ddfe4dd811d7ede340a535abc..252729e3f0585898bcc894b20de576f6bf87506b 100644 (file)
@@ -16,8 +16,13 @@ function perf() {
     console.log('opencv.js loaded');
     if (isNodeJs) {
       global.cv = cv;
+      global.fillGradient = HelpFunc.fillGradient;
+      global.smoothBorder = HelpFunc.smoothBorder;
       global.combine = HelpFunc.combine;
-      global.cvtStr2cvSize = HelpFunc.cvtStr2cvSize;
+      global.log = HelpFunc.log;
+      global.decodeParams2Case = HelpFunc.decodeParams2Case;
+      global.setBenchmarkSuite = HelpFunc.setBenchmarkSuite;
+      global.addKernelCase = HelpFunc.addKernelCase
       global.cvSize = Base.getCvSize();
     } else {
       enableButton();