mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
var fillGradient = function(cv, img, delta=5) { |
|
let ch = img.channels(); |
|
console.assert(!img.empty() && img.depth() == cv.CV_8U && ch <= 4); |
|
|
|
let n = 255 / delta; |
|
for(let r = 0; r < img.rows; ++r) { |
|
let kR = r % (2*n); |
|
let valR = (kR<=n) ? delta*kR : delta*(2*n-kR); |
|
for(let c = 0; c < img.cols; ++c) { |
|
let kC = c % (2*n); |
|
let valC = (kC<=n) ? delta*kC : delta*(2*n-kC); |
|
let vals = [valR, valC, 200*r/img.rows, 255]; |
|
let p = img.ptr(r, c); |
|
for(let i = 0; i < ch; ++i) p[i] = vals[i]; |
|
} |
|
} |
|
} |
|
|
|
var cvtStr2cvSize = function(strSize) { |
|
let size; |
|
switch(strSize) { |
|
case "127,61": size = cvSize.szODD;break; |
|
case '320,240': size = cvSize.szQVGA;break; |
|
case '640,480': size = cvSize.szVGA;break; |
|
case '960,540': size = cvSize.szqHD;break; |
|
case '1280,720': size = cvSize.sz720p;break; |
|
case '1920,1080': size = cvSize.sz1080p;break; |
|
case "130,60": size = cvSize.sz130x60;break; |
|
case '213,120': size = cvSize.sz213x120;break; |
|
default: console.error("unsupported size for this case"); |
|
} |
|
return size; |
|
} |
|
|
|
var combine = function() { |
|
let result = [[]]; |
|
for (let i = 0; i < arguments.length; ++i) { |
|
result = permute(result, arguments[i]); |
|
} |
|
return result; |
|
} |
|
|
|
function permute (source, target) { |
|
let result = []; |
|
for (let i = 0; i < source.length; ++i) { |
|
for (let j = 0; j < target.length; ++j) { |
|
let tmp = source[i].slice(); |
|
tmp.push(target[j]); |
|
result.push(tmp); |
|
} |
|
} |
|
return result; |
|
} |
|
|
|
if (typeof window === 'undefined') { |
|
exports.fillGradient = fillGradient; |
|
exports.cvtStr2cvSize = cvtStr2cvSize; |
|
exports.combine = combine; |
|
} |