Перейти к содержимому
Compvision.ru
ProgRoman

Библиотека CCV

Recommended Posts

Мда, странно. Для чистоты эксперимента тебе надо сконвертировать примеры в jpeg (или подсунуть свои) и проверить. Если не поможет, то... отлаживаться. На глаз я уже не могу понять, что там происходит. что весьма удивительно, так как у нас пробовали запускать примеры даже на старом дохлом нетбуке с какой-то древней Убунтой на борту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как можно результат посмотреть?.. у меня при вводе той же команды только с sudo вроде бы стало выполняться..

roman@roman-VirtualBox:~/ccv/bin$ sudo ./siftmatch ../samples/book.jpg ../samples/scene.jpg

roman@roman-VirtualBox:~/ccv/bin$

в папке sample ничего не появляется.. странно..

если ./cnnclassify вызывать таким образом то.. будет следующее

roman@roman-VirtualBox:~/ccv/bin$ sudo ./cnnclassify ../samples/book.jpg ../samples/image-net.sqlite3

cnnclassify: cnnclassify.c:63: int main(int, char **): Assertion `image != 0' failed.

roman@roman-VirtualBox:~/ccv/bin$

и ещё вопрос такой каким образом можно отлаживаться, а то работать в камандной строке не всегда удобно) в netbeans как я понял надо саму среде как-то настраивать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скомпилировать под netbeans всё таки получилось надо в настройках изменить gcc на clang и добавить дополнительные параметры, которые есть в make файле, всё собралось без ошибок, тут такая проблема при чтении изображения


ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);

изображение не считывается, image равен 0 всегда, не понятно почему так.. пробовал и абсолютный и относительный путь всё равно image равен 0..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, результат должен лежать в папке. Раз его нет, то... Ты сам знаешь. Менять параметры местами, конечно, не надо.

Отладка в классическом понимании идёт с помощью gdb. Любое IDE в Линуксе его и использует (можно и из командной строки). Как альтернатива - отладка логами, но это не для слабонервных, но зачастую очень удобный и единственно возможный способ.

Я с С++ привык работать из Qt Creator.

По последнему вопросу: пробуй отладчиком заходить внутрь ccv_read, где-то внутри должен быть код ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня ccv_read() кода нету почему то.. есть дефайн в ccv.h, а какого-нибудь ccv.c нету где есть эта функция


ccv.h

.....

int ccv_read_impl(const void* in, ccv_dense_matrix_t** x, int type, int rows, int cols, int scanline);

#define ccv_read_n(in, x, type, rows, cols, scanline, ...) \

	ccv_read_impl(in, x, type, rows, cols, scanline)

#define ccv_read(in, x, type, ...) \

	ccv_read_n(in, x, type, ##__VA_ARGS__, 0, 0, 0)

// this is a way to implement function-signature based dispatch, you can call either

// ccv_read(in, x, type) or ccv_read(in, x, type, rows, cols, scanline)

// notice that you can implement this with va_* functions, but that is not type-safe

ccv_read_impl, которая вызывается в свою очередь из ccv_read_n, а она из ccv_read так же нигде нету кода.. как это возможно.. ставлю точку останова она просто перескакивает через неё.. не заходит внутрь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поиск по файлам *.с говорит, что в ccv_io.c

Название файла говоорит, что мы не ошиблись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отлично! всё получилось, для этого мне пришлось пересобрать либу(libccv) и изменить makefile, собрал её без оптимизации и добавил ещё отладочную информацию и всё стало работать наверно что-то с оптимизацией связано было..


CFLAGS := -g -O0 -ffast-math -Wall $(CFLAGS)# -fprofile-arcs -ftest-coverage

NVFLAGS := -g -O0 $(NVFLAGS)

это были изменения теперь при отладке можно заходить в ccv_read ну и другие функции)

при выполнении команды

./siftmatch ../samples/book.png ../samples/scene.png

выдал список точек

....

190.190292 153.517532 => 280.543396 132.711090

220.898056 206.221832 => 317.080750 141.205688

191.220901 54.023006 => 236.006592 90.889870

191.220901 54.023006 => 236.006592 90.889870

218.149765 126.782501 => 279.896118 108.751839

126.360435 68.830391 => 217.303818 126.628815

105.916687 222.729126 => 256.858429 107.466881

105.916687 222.729126 => 256.858429 107.466881

338x289 on 512x384

98 keypoints out of 1178 are matched

elpased time : 3432

при выполнении

./cnnclassify ../samples/dex.png ../samples/image-net.sqlite3

появился набор чисел

363 0.258338 374 0.096494 365 0.057573 376 0.057549 384 0.039335

elapsed time 8236ms

так, что всё работает спасибо всем за помощь!

Буду разбираться, что за цифры и что с ними можно сделать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×