【问题标题】:Window type char窗口类型字符
【发布时间】:2014-07-07 11:09:45
【问题描述】:

我是 C++ 编码的新手,目前正在开发一个应用程序,该应用程序可以清除图片中的所有对象,除了最大的对象。我正在寻找基于我找到的边界框教程进行对象大小检测here

我正在考虑使用可以在链接中找到的代码来实现一段代码,这样我就可以使用实时视频馈送而不是图像来设置“边界框”技术,但后来我遇到了这个问题这里:

/// Create Window
char* source_window = "Source";
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
imshow( source_window, src );

为什么你要把它变成char类型而不是像下面那样做?

Mat edges;
namedWindow("edges",1);

正如我之前所说,我对使用 C++ 和 opencv 编码真的很陌生,如果这是一个愚蠢的问题,请见谅。

提前致谢

【问题讨论】:

  • 没有真正的原因 - 但它确保您不会因为在 imshow 调用中输入错误而弄错名称。

标签: c++ opencv char


【解决方案1】:

您将此代码视为可疑代码是正确的。 source_window的类型不对。

它目前被定义为指向char 的指针。然而它是用一个字符串字面量初始化的,它的类型为const char[]。虽然存在从数组[] 转换为指针* 的转换,但没有转换会丢弃const

您为此类常量指定名称的原因通常是因为您在两个地方使用了相同的常量。键入两次会增加您打错字并最终得到两个不同字符串的风险。这可以像拼写第二个字符串“source”一样简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多