2013-02-26 2 views
0

Следующий код Java OpenCV:Случайные пиксели в OpenCV сохраняются изображения с помощью Java

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

Создает следующее изображение:

created image

Это похоже неочищенных буфера или какой-то указатель неправильной логики. Должен ли я очистить изображение после вызова cvCreateImage? Как очистить буфер?

ответ

0

Изучая код C, я не вижу кода для очистки выделенного массива. Он содержит только случайные данные.

Java-вызов, чтобы установить все пиксели одно значение:

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

Я думаю, что это должно быть упомянуто в документации, что он несет ответственность вызывающему очистить данные. Мы, java-ребята, привыкли к ясным буферам конструкторов, хотя мы понимаем, что иногда это может быть ненужной работой.

0

Я думаю, что это более короткий путь:

cvZero(image); 

(может очистить все каналы)

Смежные вопросы