以下java opencv代码:
IplImage image = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 3);
cvSaveImage("d:/tmp/test.png", image);
创建以下图像:
这似乎是未清除缓冲区或某些指针错误逻辑。首先调用cvCreateImage后我应该清除图像吗?如何清除缓冲区?
答案 0 :(得分:0)
检查C代码,我看不到清除已分配数组的代码。它只包含随机数据。
将所有像素设置为单值的java调用是:
cvSet(image, CV_RGB(0, 0, 0));
我认为应该在文档中提到,调用者有责任清除数据。我们java的人习惯了那些构造函数清除缓冲区,尽管我们知道它有时可能是不必要的工作。
答案 1 :(得分:0)
我认为这是较短的方式:
cvZero(image);
(可以清除所有频道)