OpenCV中matchTemplate后出现黑色图像

3
结果显示我看到的是一张黑色的图片。我已经尝试使用具有不同参数的convert,例如out.convertTo(out,6),但没有成功。
export function testAction(req, res) {
      req.file('image').upload((error, file) => {
        openCV.readImage(file[0].fd, function (err, im1) {
          let out = im1.matchTemplate(file[1].fd, 0);
          out.save('result.png');
        });
      });
      res.ok();
}
2个回答

1
匹配模板会在Mat中给你浮点元素,并且范围在[0;1]之间。 当你保存图像时,它将转换为CV_8UC3图像,但不会按比例缩放。 您可以尝试将结果乘以255并查看,或使用cv::normalize方法。

@Eugene,你能分享一下你是怎么做到的吗? - Bob van Luijt
只需将 out.normalize(0, 255, cv.Constants.CV_8UC3); 进行规范化。 - Eugene

0

我认为还有另一个答案。

matchTemplate()是同步的,所以你的代码应该是:

openCV.readImage(file[0].fd, function (err, im1) {
     im1.matchTemplate(file[1].fd, 0, function(out){
         out.save('result.png');
     })
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接