【发布时间】:2016-12-20 21:36:56
【问题描述】:
我在 OpenCV 中有这段代码:
cv::Mat1f codes(x,y);
...
for(int i=0; i<codes.rows ; i++){ //you don't care about n
cv::Mat code(1,codes.cols, codes.type());
encode_(..., code); //fill code with values
codes.row(i) = code;
std::cout<<"code= "<<code<<std::endl;
std::cout<<"codes.row= "<<codes.row<<std::endl;
}
但是打印出来的值不同:
code= [-0.0018070865, -0.0088188984, -0.001866244, 0.0071420735, -0.00046708167, -0.0011722896, ...
codes.row= [0.091074832, 0.10463701, 0.060412209, 0.075102232, 0.036429934, 0.018214967, ...
为什么会这样?
【问题讨论】:
-
调试器是解决此类问题的正确工具。 在询问 Stack Overflow 之前,您应该逐行浏览您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
-
很抱歉,但在假设我不知道如何使用您的调试器之前,您应该先询问一下,我知道如何使用。我这里有 很多 评分很高的问题。我的代码是最少的(没有包含额外的代码,只是你需要理解问题的那个)完整的(没有遗漏任何信息来理解问题)和可验证的(代码在合适的程序中工作)。使用传统调试器调试 OpenCV 并没有帮助,因为它是一个大型框架,您不能在库中挖掘太多。
-
在使用之前了解你的框架!
-
对不起,你是说你现在每一个方法都是你的框架?嗯,对你有好处。在我看来,一个问题有多简单并不重要,重要的是问题有多清晰。这个问题是 100% 清楚的,并且满足 stackoverflow 的要求。如果您不了解 OpenCV,请不要回答问题(或投赞成票/反对票)。我很惊讶这些基本概念是由我提供给像你这样有经验的用户的。干杯。
-
好的,我想我设法实现了原始评论者所追求的目标。祝你的问题好运。