我目前正在使用 OpenCv 开发 Intel Perceptual 相机。我可以从相机中获取图像,将它们转换为 cv::Mat 类型,然后应用皮肤和深度过滤器。
现在我想用openCV的“convexHull”函数计算一个凸包,但它会造成堆损坏。
这是代码中有趣的部分:
Mat skin = curr.GetSkin()
vector<Point> points;
for(int i=0; i<skin.rows; i++)
{
for(int j=0; j<skin.cols; j++)
{
if ((int) skin.at<unsigned char>(i,j) > 0 )
{
Point pt ;
pt.x = j ;
pt.y = i ;
points.push_back(pt);
}
}
}
Mat img(skin.rows, skin.cols, CV_8UC3);
vector<int> hull;
convexHull(Mat(points), hull, true);
其中 skin 是一个填充了 255 和 0 值的矩阵。
注意:这是在一个循环内。
有什么建议吗?
PS:我在使用 PCL 时遇到了同样的问题:当我尝试计算法线时,出现了堆损坏。