由split()函数引起的bug调试解决方案
在调试一个关于基于深度图像的头部姿态估计代码时出现如下错误:
在对代码进行耐心的单步调试下,发现问题出现对三通道图像进行通道分离上面,也就是关于split()函数的调用出现问题。
其中使用关于通道分离的两行代码如下:
vector<Mat> channels; split(im3D, channels);
查阅资料了解到,问题很有可能就是出现在vector自动分配内存的问题上,因此在采用如下方案后,该bug得到了完美解决。
解决方案如下:
采用手动分配内存即可解决,即将上述程序修改如下:
采用手动分配内存即可解决,即将上述程序修改如下:
Mat channels[3];
split(im3D, channels);