我正在尝试在 Windows 窗体中使用 OpenCV。我创建了一个全局 cv::Mat 对象,并期望该对象供其他函数使用。但是,每次我初始化全局 cv::Mat 对象并退出/返回函数时,我的全局 cv::Mat 对象的值都会自动更改,原因不明。
一个示例代码片段如下:
private: cv::Mat *cvImage;
出于某种原因,我创建了一个名为 decode() 的函数,它返回 cv::Mat。
void copy(){cvImage = &decode();}
cvImage 无法通过上述代码获得正确的值。通常是 data、dataend、datalimit、datastart 和 rows 为 0 或意外值。
即使我尝试使用局部变量,比如 cv::Mat img 来做所有事情然后运行 cvImage = &img;
,每当函数退出或返回时,cvImage 的值也会意外改变。
我想知道为什么会发生这种情况??