比较node.js中的图像(使用例如opencv)

我想要做的是使用node.js获取图像差异。 最终,我想有一个方法,期望例如两个文件path或图像数据输出减法。 不知何故,像imagemagick中的比较function。

就像是:

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的文档。 我想使用的function是cvSub 。

我想避免使用js-imagediff,因为它与canvas一起工作,对“cairo”有依赖性,我不确定是否可以访问这些点,因为在文档中它似乎只是将差异作为图像返回。

我从来没有试图通过cv::addWeighted()来计算每个元素的差异,但它可能在实践中工作:

 var diff = new cv.Matrix(first.width(), first.height()); diff.addWeighted(first, 1.0, second, -1.0); 

在本机代码(C ++)中,可以用下面的expression式replace这个函数:

 diff = first*1.0 + second*(-1.0) + 0.0; 

ps:node-opencv的作者发布了一个测量相似度的示例代码:
node-opencv / examples / dissimilarity.js