代码之家  ›  专栏  ›  技术社区  ›  Oliv

使用Java保存的opencv图像中的随机像素

  •  0
  • Oliv  · 技术社区  · 12 年前

    以下java opencv代码:

    IplImage image = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 3);
    cvSaveImage("d:/tmp/test.png", image);
    

    创建以下图像:

    created image

    这看起来像是未清理的缓冲区或某些指针逻辑错误。我应该先调用cvCreateImage后清除图像吗?如何清除缓冲区?

    2 回复  |  直到 12 年前
        1
  •  0
  •   Oliv    12 年前

    检查C代码,我没有看到任何代码可以清除分配的数组。它只包含随机数据。

    将所有像素设置为单个值的java调用是:

    cvSet(image, CV_RGB(0, 0, 0));
    

    我认为文档中应该提到,清除数据是调用者的责任。我们java人员习惯于构造函数清除缓冲区,尽管我们知道有时这可能是不必要的工作。

        2
  •  0
  •   Mkr    11 年前

    我认为这是较短的方式:

    cvZero(image);
    

    (可以清除所有通道)