Segfault当使用打开cv Mat ::在
问题描述:
我想用一些值填充opencv矩阵,但我不断收到segfaults。代码如下:Segfault当使用打开cv Mat ::在
Mat mask_gx(in_window_size, in_window_size, image.type());
for(int i = 0; i <= in_window_size; i++)
{
for(int j = 0; j <= in_window_size; j++)
{
double gx = (-i/in_sigma) * pow(M_E, ((pow(i, 2)* pow(j, 2))/pow(in_sigma, 2))/(-2));
mask_gx.at<double>(j, i) = gx;
}
}
问题在最后一行。我已经测试它:
mask_gx.at<int>(j, i) = 1;
我仍然得到段错误。
有没有人有任何想法似乎是这个代码的问题?
答
如果in_window_size
是在每个维度值的量,那么它应该是在for
-loop比较<
而不是<=
,我相信。
谢谢,我已经纠正它,但这并不能解决问题。有趣的是,最后一行在循环外完美无缺。 – mobearette 2011-04-06 13:01:09
难道是'image.type()'不能正确对应一个可以设置'double'值的类型(如'mask_gx.at')?也许它对应于一个小于“double”的类型? –
2011-04-06 13:21:54
这个问题变得越来越有趣。 in_window_size的值是11.当我尝试在循环中放入固定值时,它可以正常工作到7.但7之后的所有内容都会导致段错误。 再次,下面的代码在循环外完美地工作: 'mask_gx.at(11,11)= 1.0;' –
mobearette
2011-04-06 13:23:23