计算机视觉
MacOS 可使用 brew 来安装:
请使用稳定的v2(2.4.13.2)版本,源码包,windows 平台的安装请参考 OpenCV 官网。
如果不想本机安装使用的请直接使用后面提到的 NodeCV 服务,避免环境的诸多问题。
各语言使用方法
Node.js:
只需要引入 模块即可完成图像相似度,特征匹配,特征识别等功能,如下示例。
nodecv.imread(image1Path, (err, image1) => {
if (err) {
throw err;
}
if (err) {
throw err;
}
nodecv.imageDissimilarity(image1, image2, (err, dissimilarity) => {
if (err) {
throw err;
}
console.log(`Dissimilarity: ${dissimilarity}`);
});
});
匹配方式枚举:
CV_TM_SQDIFF =0 平方差匹配法
CV_TM_SQDIFF_NORMED =1 归一化平方差匹配法
CV_TM_CCORR =2 相关匹配法
CV_TM_CCORR_NORMED =3 归一化相关匹配法
CV_TM_CCOEFF =4 相关系数匹配法
CV_TM_CCOEFF_NORMED =5 归一化相关系数匹配法
更多 Node.js 示例请访问 macaca-sample/cv-sample-node。
Python:
Java:
Java 端请直接使用 ,更多 Java 示例请访问 macaca-sample/cv-sample-java。
Macaca 提供便捷的 Opencv 服务部署,只需要 Docker 环境便可一键部署。
$ git clone https://github.com/macacajs/nodecv-server.git --depth=1
$ docker build . -t="node-server"
然后便可在任意服务器环境,甚至启动 OpenCV 的 HTTP
服务,macaca-sample 也提供各语言针对服务端通信的示例。
服务启动成功后可访问 demo 页面:
POST /opencv/dissimilarity
请求 HTTP 服务示例:
request.post({
url: `${remoteHost}/opencv/dissimilarity`,
formData: formData
}, function(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Server responded with:', body);
try {
const data = JSON.parse(body);
console.log(`Dissimilarity is: ${data.dissimilarity}`);
} catch (e) {
}
});
Sikuli
Sikuli 是一种图形脚本语言,与 Macaca 配合使用可适应特定的测试场景,更多请见官网sikuli。
在文字识别等方面非常专业,可与 OpenCV 配合使用。
Image Diff
基于像素点对比的图像 Diff,可以使用:
- yahoo/blink-diff
与 Macaca 结合使用的,效果如下:
游戏框架 Hilo 也是基于像素点对比的,与 Macaca 结合使用示例见 hiloteam/Hilo 官网。