我是c++编程新手,目前正在开发一个应用程序,可以清除除最大的对象外的所有对象。我正在寻找基于边界框教程的对象大小检测,我在这里找到
我正在考虑实现一段代码,可以在链接中找到的代码,这样我就可以用实时视频feed而不是图像设置"边界框"技术,但后来我在这里遇到了这一点:
/// Create Window
char* source_window = "Source";
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
imshow( source_window, src );
为什么要将this设置为char类型,而不是像下面这样做呢?
Mat edges;
namedWindow("edges",1);
正如我之前所说的,我对用c++和opencv编码真的很陌生,所以如果这是一个愚蠢的问题,我很抱歉。
Thanks in advance
您认为这段代码可疑是正确的。source_window
类型错误
当前被定义为指向char
的指针。然而,它是用一个类型为const char[]
的字符串字面值初始化的。虽然有从数组[]
到指针*
的转换,但没有将const
丢弃的转换。
给这样的常量赋名字的原因通常是因为在两个地方使用了同一个常量。输入两次会增加你打错字的风险,最后得到两个不同的字符串。这可以像拼写第二个字符串"source"一样简单。