-1

运行以下代码时:

for(int i = 0; i < result.size(); ++i) {
   for(int j = 0; j < result[i].size(); ++j) {
     if(anchor_map->at<float>(i, j) > 0) {
     }
   }
}

由于 result.size() 的大小为 1200,result[i].size() 的大小为 1600,因此将 i 和 j 的范围锁定到位,因为 anchor_map.size() 为 [1600 x 1200]。

问题在于,每次在 i = 1197, j = 1436 时,它都会因访问冲突而中断,而 anchor_map 在开始时设置为零,并且在右侧像素处是锚点所在的像素。

在 Windows 7 64 位的 Visual Studio 12 中制作

4

1 回答 1

1

试试这个:

using namespace cv;
void main (void)
{
    Mat anchor_map(1200,1600,CV_8UC1);

    for(int i = 0; i < anchor_map.rows; ++i) {
        for(int j = 0; j < anchor_map.cols; ++j) {
            if(anchor_map.at<unsigned char>(i, j) > 0) {
            }
        }
    }
    getchar();
}
于 2013-08-10T17:13:19.677 回答