使用CImg显示2D矩阵的最佳方法是什么?我正在尝试以下代码,但它给了我一个分段错误:
float matrix[100][100];
int i;
int j;
for (i=0; i<100; i++) {
for (j=0; j<100; j++) {
matrix[i][j] = 10.0*sin((float)j/(2.0*3.1416));
}
}
CImg<float> img(100,100,1,1);
img._data = &matrix[0][0];
img.display("Test");
我做错了什么?
答案 0 :(得分:1)
你所做的可能不是一个好主意:析构函数~CImg<T>
将尝试释放与CImg<T>
实例关联的缓冲区,并强制其值为matrix
,你会遇到很大麻烦。我建议使用共享图像,它是高效的(没有额外的内存复制)并且使用安全:
CImg<float> img(matrix,width,height,1,1,true); // img is a 'shared' image.
img.display("Test");