使用CImg显示2D矢量的最佳方法

时间:2014-04-24 01:34:49

标签: c++ cimg

使用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");

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你所做的可能不是一个好主意:析构函数~CImg<T>将尝试释放与CImg<T>实例关联的缓冲区,并强制其值为matrix ,你会遇到很大麻烦。我建议使用共享图像,它是高效的(没有额外的内存复制)并且使用安全:

CImg<float> img(matrix,width,height,1,1,true);  // img is a 'shared' image.
img.display("Test");