Что именно делает эта программа OpenCV? - PullRequest
1 голос
/ 20 февраля 2010

Я хочу точно знать, что делает эта программа:

#include <iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
int main(int argc, char* argv[])
{
printf("Hello world\n");
IplImage *img = cvLoadImage("C:/Program Files/OpenCV/samples/c/lena.jpg");
// Create a window
cvNamedWindow( "result",
CV_WINDOW_AUTOSIZE // allow window to resize to fit image true size
);
cvShowImage( "result", img ); // Show image in window already created
// Wait for a keystroke. If a positive argument is given, it will wait for
// that number of milliseconds and then continue. If 0 is given, the
// program will wait indefinitely for a keypress.
cvWaitKey(0);
// Clean up (not really necessary, but good programming practice)
cvReleaseImage( &img );
cvDestroyWindow("result");
system("PAUSE");
return EXIT_SUCCESS;
}

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

Может кто-нибудь пролить свет на мою проблему? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

загружает изображение

Показывает изображение

, затем подождите любую клавишу (0)

На любую клавишу нажмите

освобождает используемую память и возвращает EXIT_SUCCESS

Должно работать правильно, возможно, путь неверный

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

"lena.jpg"

Также другим вариантом будет попытка использовать обратную косую черту

"C: \\ Program Files \\ OpenCV \\ samples \\ c \\ lena.jpg"

РЕДАКТИРОВАТЬ *

Вам следует запустить диагностические тесты, включенные в openCV

они расположены в каталоге opencv \ bin и должны быть в состоянии проверить правильность установки

0 голосов
/ 24 февраля 2010
#include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int main(int argc, char* argv[])
{
printf("Hello world\n");
IplImage *img = cvLoadImage("fruits.jpg",1);
// Create a window
cvNamedWindow( "result",
CV_WINDOW_AUTOSIZE // allow window to resize to fit image true size
);
cvShowImage( "result", img ); // Show image in window already created
// Wait for a keystroke. If a positive argument is given, it will wait for
// that number of milliseconds and then continue. If 0 is given, the
// program will wait indefinitely for a keypress.
cvWaitKey(0);
// Clean up (not really necessary, but good programming practice)
cvReleaseImage( &img );
cvDestroyWindow("result");
system("PAUSE");
return EXIT_SUCCESS;
}

Makefile (убедитесь, что у вас есть табуляция вместо 8 пробелов!)

CFLAGS=-g -Wall 
test = test
$(test): $(test).c
    gcc -ggdb `pkg-config opencv --cflags --libs` -g -c -Wall $(test).c -o $(test).o 
    gcc -ggdb `pkg-config opencv --cflags --libs` -lpthread -lm $(test).o -o $(test) 

clean:
    @echo Removing generated files...
    rm -f $(test).o $(test)

Эта программа работает для меня! С наилучшими пожеланиями, Virgoptrex! Протестировано на OpenCv 1.0 на Ubuntu 8.10!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...