出于某种原因,此代码在第二次读取时产生访问冲突,但不是第一次。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, char **argv)
{
Mat mat1, mat2;
char imgname1[255]="cise_StackD.tif";
mat1 = imread( imgname1, CV_LOAD_IMAGE_GRAYSCALE);
char imgname2[255]="ecise_StackD.tif";
mat2 = imread( imgname2, CV_LOAD_IMAGE_GRAYSCALE);
return 0;
}
确切的运行时错误消息是:“MLMVNroThrust.exe 中 0x61f437ef (msvcr100d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xcccccccc。” 具有相同可见项目设置的相同代码可以在另一台 PC 上运行。图像是相同的副本。
我正在使用 OpenCV 2.4.3 预构建的二进制文件;这些项目也设置为使用 CUDA,但我已经删除了所有 CUDA 代码以隔离问题。
是什么造成了这种访问冲突,我该如何摆脱它?
谢谢。