比较 node.js 中的图像(使用例如 opencv)
Compare images in node.js (using e.g. opencv)
我想做的是使用 node.js 获取图像差异。
最终我想要一个方法,例如两个文件路径或图像数据输出两者的减法。有点像 compare function in imagemagick.
类似于:
var comparison_result = compareModule.compare('./image1.png', './image2.png');
此外,我想获得标记差异的点在结果图像中的位置。
像这样:
comparison_result.forEach(function(difference) {
console.log("A difference occurred at " + difference.x + "|" + difference.y);
});
我安装了 node-opencv,但是我找不到将基本 opencv c++ 函数映射到 node.js 的文档。
我想使用的函数是 cvSub.
我想避免使用 js-imagediff,因为它与 canvas 一起使用,对 "cairo" 有依赖性,我不确定我是否可以访问这些点,因为在文档中它更像是 returns 图像的差异。
我从未尝试通过 cv::addWeighted()
计算每个元素的差异,但它可能在实践中有效:
var diff = new cv.Matrix(first.width(), first.height());
diff.addWeighted(first, 1.0, second, -1.0);
在本机代码 (C++) 中,此函数可以替换为以下表达式:
diff = first*1.0 + second*(-1.0) + 0.0;
p.s.: node-opencv的作者发布了一个测量相似度的示例代码:
node-opencv / examples / dissimilarity.js
我想做的是使用 node.js 获取图像差异。 最终我想要一个方法,例如两个文件路径或图像数据输出两者的减法。有点像 compare function in imagemagick.
类似于:
var comparison_result = compareModule.compare('./image1.png', './image2.png');
此外,我想获得标记差异的点在结果图像中的位置。
像这样:
comparison_result.forEach(function(difference) {
console.log("A difference occurred at " + difference.x + "|" + difference.y);
});
我安装了 node-opencv,但是我找不到将基本 opencv c++ 函数映射到 node.js 的文档。 我想使用的函数是 cvSub.
我想避免使用 js-imagediff,因为它与 canvas 一起使用,对 "cairo" 有依赖性,我不确定我是否可以访问这些点,因为在文档中它更像是 returns 图像的差异。
我从未尝试通过 cv::addWeighted()
计算每个元素的差异,但它可能在实践中有效:
var diff = new cv.Matrix(first.width(), first.height());
diff.addWeighted(first, 1.0, second, -1.0);
在本机代码 (C++) 中,此函数可以替换为以下表达式:
diff = first*1.0 + second*(-1.0) + 0.0;
p.s.: node-opencv的作者发布了一个测量相似度的示例代码:
node-opencv / examples / dissimilarity.js