gpt4 book ai didi

c++ - 无法从 'cv::Scalar_' 转换为 'cv::Mat'

转载 作者:行者123 更新时间:2023-11-30 03:54:28 27 4
gpt4 key购买 nike

我正在尝试复制 Canny Edge detector在我的一个程序中采样,我遇到了这个问题。我相信这是一个一般的 C++ 问题,而不是 openCV(使用的版本 2.4.9)的特定问题。

如果我尝试编译它,它会因错误而失败:

        cv::Mat dst = cv::Scalar::all(0);

错误:

Error   1   error C2440: 'initializing' : cannot convert from 'cv::Scalar_<double>' to 'cv::Mat'

但是,如果我尝试用这个编译,它会起作用:

        cv::Mat dst;
dst = cv::Scalar::all(0);

这是什么原因?

最佳答案

这是因为第一种语法

cv::Mat dst = cv::Scalar::all(0);

实际上是在调用构造函数并进行初始化(准确地说,它试图调用一个复制构造函数)。另一方面,这种语法

cv::Mat dst;
dst = cv::Scalar::all(0);

调用赋值运算符,即perfectly defined when scalar is on the right side .

关于c++ - 无法从 'cv::Scalar_<double>' 转换为 'cv::Mat',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com