opencv4nodejs matchShapes TypeError: Cannot read property 'I2' of undefined
时间: 2023-07-08 07:33:58 浏览: 55
这个错误通常表示您没有正确导入 `cv.ContourMatchType` 枚举。请确保在您的代码中使用以下导入语句:
```javascript
const cv = require('opencv4nodejs');
// 导入枚举
const { cv } = require('opencv4nodejs');
const ContourMatchType = cv.ContourMatchType;
// 示例代码
const contour1 = [new cv.Point2(0, 0), new cv.Point2(0, 10), new cv.Point2(10, 10)];
const contour2 = [new cv.Point2(0, 0), new cv.Point2(0, 10), new cv.Point2(5, 5)];
const similarity = cv.matchShapes(contour1, contour2, ContourMatchType.I1, 0);
console.log(similarity);
```
在这个例子中,我们将枚举 `cv.ContourMatchType` 的值导入到变量 `ContourMatchType` 中,并在调用 `matchShapes` 函数时使用 `ContourMatchType.I1`。如果您仍然遇到问题,请检查您的 OpenCV4NodeJS 版本是否最新,并确保您的安装是正确的。
相关问题
opencv4nodejs TypeError: cv.matchShapes is not a function
这个错误可能是因为你的OpenCV版本不支持 `matchShapes` 函数。你可以尝试升级opencv4nodejs到最新版本,或者使用支持 `matchShapes` 函数的OpenCV版本。你也可以检查一下你的代码是否正确地引用了OpenCV库。如果以上方法都不行,可以尝试在OpenCV的官方文档中查找有关 `matchShapes` 函数的信息,或者在Stack Overflow上寻求帮助。
opencv4nodejs matchShapes
`matchShapes` 是 OpenCV 中的一个函数,用于计算两个轮廓之间的形状相似性。在 opencv4nodejs 中,可以通过以下代码使用 `matchShapes`:
```javascript
const cv = require('opencv4nodejs');
const contour1 = [new cv.Point2(0, 0), new cv.Point2(0, 10), new cv.Point2(10, 10)];
const contour2 = [new cv.Point2(0, 0), new cv.Point2(0, 10), new cv.Point2(5, 5)];
const similarity = cv.matchShapes(contour1, contour2, cv.ContourMatchType.I1, 0);
console.log(similarity);
```
这个例子计算了两个轮廓 `contour1` 和 `contour2` 之间的相似性,并将结果打印到控制台。其中 `cv.ContourMatchType.I1` 是相似性度量的类型,可以是 `cv.ContourMatchType.I1`、`cv.ContourMatchType.I2` 或 `cv.ContourMatchType.I3`。第四个参数是一个布尔值,用于指定是否使用旋转不变性。