2010-10-12 2 views
2

Я пытаюсь написать эту простую программу модификатора изображений в C++ с opencv на netbeans. Я использую ubuntu 10.04. Каждый раз, когда я пытаюсь запустить или скомпилировать его, он возвращает ошибки ниже. У меня opencv настроен в компоновщике и дополнительных инструментах. Что происходит не так?opencv не работает с NetBeans

include stdlib.h 
include stdio.h 
include math.h 
include cv.h 
include highgui.h 
int main(int argc, char *argv[]) 
{ 
    IplImage* img = 0; 
    int height,width,step,channels; 
    uchar *data; 
    int i,j,k; 
    if(argc<2){ 
    printf("Usage: main <image-file-name>\n\7"); 
    exit(0); 
    } 
    // load an image 
    img=cvLoadImage(argv[1]); 
    if(!img){ 
    printf("Could not load image file: %s\n",argv[1]); 
    exit(0); 
    } 
    // get the image data 
    height = img->height; 
    width  = img->width; 
    step  = img->widthStep; 
    channels = img->nChannels; 
    data  = (uchar *)img->imageData; 
    printf("Processing a %dx%d image with %d channels\n",height,width,channels); 
    // create a window 
    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
    cvMoveWindow("mainWin", 100, 100); 
    // invert the image 
    for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++) 
    data[i*step+j*channels+k]=255-data[i*step+j*channels+k]; 
    // show the image 
    cvShowImage("mainWin", img); 
    // wait for a key 
    cvWaitKey(0); 
    // release the image 
    cvReleaseImage(&img); 
    return 0; 
} 

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 
make[1]: Entering directory `/home/kevin/NetBeansProjects/CppApplication_4' 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/cppapplication_4 
make[2]: Entering directory `/home/kevin/NetBeansProjects/CppApplication_4' 
mkdir -p build/Debug/GNU-Linux-x86 
rm -f build/Debug/GNU-Linux-x86/main.o.d 
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/ main.o main.cpp 
main.cpp:4:16: warning: cv.h: No such file or directory 
main.cpp:5:21: warning: highgui.h: No such file or directory 
main.cpp: In function ‘int main(int, char**)’: 
main.cpp:10: error: ‘IplImage’ was not declared in this scope 
main.cpp:10: error: ‘img’ was not declared in this scope 
main.cpp:12: error: ‘uchar’ was not declared in this scope 
main.cpp:12: error: ‘data’ was not declared in this scope 
main.cpp:21: error: ‘cvLoadImage’ was not declared in this scope 
main.cpp:32: error: expected primary-expression before ‘)’ token 
main.cpp:32: error: expected ‘;’ before ‘img’ 
main.cpp:36: error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope 
main.cpp:36: error: ‘cvNamedWindow’ was not declared in this scope 
main.cpp:37: error: ‘cvMoveWindow’ was not declared in this scope 
main.cpp:44: error: ‘cvShowImage’ was not declared in this scope 
main.cpp:47: error: ‘cvWaitKey’ was not declared in this scope 
main.cpp:50: error: ‘cvReleaseImage’ was not declared in this scope 
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1 
make[1]: *** [.build-conf] Error 2 
make: *** [.build-impl] Error 2 
make[2]: Leaving directory `/home/kevin/NetBeansProjects/CppApplication_4' 
make[1]: Leaving directory `/home/kevin/NetBeansProjects/CppApplication_4' 

BUILD FAILED (exit value 2, total time: 115ms) 

EDIT: Извините за массивной перемешивать

ответ

2

Alright господин, это ваш сборник линия здесь:

g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/ main.o main.cpp 

При включении заголовков с помощью <>:

#include <cv.h> 
#include <highgui.h> 

компилятор будет искать эти файлы в def ault include path, который обычно равен: /usr/include

Итак, зная, что opencv не устанавливает файлы разработки в этом каталоге, я должен предложить вам их найти. IF opencv правильно установлен в системе, команда pkg-config --cflags opencv собирается рассказать вам, где они находятся. Давай, попробуй. Вы также можете выполнить команду pkg-config --libs opencv, чтобы найти библиотеки, которые вы должны добавить в компиляцию.

Суммируя все, если вы откроете терминал и cd в каталог, где находится исходный код, ниже команда может составить IF вы OpenCV правильно установили ваш проект.

g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/ main.o main.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv` 

EDIT:

Вы знаете что? Я просто вставляю код (opencv/camera) here (назовем его funcam.cpp). Вы можете использовать его, чтобы проверить, установлен ли OpenCV и компилирует материал в вашей системе. Вы можете скомпилировать его с помощью:

g++ funcam.cpp -o funcam `pkg-config --cflags opencv` `pkg-config --libs opencv` 

Если это работает, вы должны выяснить, как настроить Netbeans. Если это не так, вам нужно правильно установить OpenCV.

+0

Как насчет netBeans? –

+0

@a Я не использую его, мне очень нравятся материалы с cmd. Но теперь, когда вы знаете, что не так, вы можете найти руководство по настройке Netbeans и добавлению этих настроек. – karlphillip

+0

Хорошо спасибо. Обычно я использую командную строку, но я прилагаю все усилия, чтобы использовать идею на один раз. –

1

Этот link будет полезен при настройке Netbeans на использование OpenCV. Непосредственно перейдите в нижнюю часть страницы, если opencv и Netbeans уже установлены.
Обратите внимание на пути к каталогам, вам придется изменить их на основе установки.