分割图像会导致未处理的异常错误

splitting image results in unhandled exception error

本文关键字:异常 错误 未处理 图像 分割      更新时间:2023-10-16

我目前正计划将我的图像分成3个通道,这样我就可以获得图像的RGB值来绘制散点图,这样我就可以使用正态分布来计算协方差矩阵,平均值等。然后计算背景点与实际图像之间的距离,对图像进行分割。

现在,在我的第一个任务中,我编写了以下代码:

    VideoCapture cam(0);
//int id=0;
Mat image, Rch,Gch,Bch;
vector<Mat> rgb(3);         //RGB is a vector of 3 matrices
namedWindow("window");
while(1)
{
    cam>>image;
split(image,rgb);
    Bch = rgb[0];
    Gch = rgb[1];
    Rch = rgb[2];

但是当它到达split函数时,它会导致一个未处理的异常错误。访问冲突写入位置0xfeeefeee

我仍然是新的opencv,所以我不习惯处理未处理的异常错误。

谢谢

听起来好像split期望在rgb向量中有三个Mat实例。但是你只准备了三个条目——它实际上是空的。

尝试添加三个元素到向量,然后再运行。

虽然这是一个老问题,但我想分享对我有效的解决方案。我用Mat channels[3];代替vector<Mat> rgb(3);。我意识到有一些错误的使用矢量时,我不能使用分割,甚至在一个图像加载imread。不幸的是,我不能解释为什么这个改变是有效的,但如果有人可以,那将是伟大的。