【发布时间】:2010-07-22 20:15:20
【问题描述】:
我一直在使用 openCV 开发一些计算机视觉工具,但是每次我将字符串传递给 openCV 函数时,字符 ÌÌÌÌ 都会被标记到开头。起初这很烦人,但现在我正在尝试使用 openCV 的 fileStorage 工具,而 ÌÌÌÌ 字符使我的文件名不可读。
注意:只有当我将字符串传递给新的 c++ 风格的 openCV 函数时,才会添加字符。如果我使用旧的 C 风格函数,字符串会很好。
示例: 我输入这个:
namedWindow("CBImage", 1);
.
.
.
imshow("CBImage", Frame);
但窗口标题显示为 ÌÌÌÌCBImage
我认为问题不一定是 openCV 特有的;我认为这与一般的字符串使用有关。检查此链接,编码器似乎遇到了类似的问题。 http://www.sfml-dev.org/forum/viewtopic.php?t=1257&sid=5cfa50b780e47685d1c03296adffa8ed
有什么想法吗? 谢谢
感谢大家的帮助。 KennyTM 的原始建议确实解决了这个问题。我不得不用调试版本替换我的 cv cvaux cvcore 和 highgui 库(可能必须根据您运行的 openCV 版本来构建它们,检查 openCV 目录中的 lib 文件夹)。
【问题讨论】:
-
您使用的是 Visual C++ 吗?如果是,请检查
Ì的十六进制值。要么是0xcc要么是0xcd(我忘了哪个)。无论哪种方式,都意味着指向的内存是未初始化的(0xcc是一个标志,用于指示堆栈上未初始化的内存;0xcd是用于堆上未初始化的内存)。 -
您是否按照您链接到的帖子的解决方案中提到的那样混合了调试和发布二进制文件(意外或其他原因)?
标签: c++ string debugging opencv