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

时间:2013-02-26 12:29:57

标签: javacv

以下java opencv代码:

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

创建以下图像:

created image

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

2 个答案:

答案 0 :(得分:0)

检查C代码,我看不到清除已分配数组的代码。它只包含随机数据。

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

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

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

答案 1 :(得分:0)

我认为这是较短的方式:

cvZero(image);

(可以清除所有频道)