opencv не работает с NetBeans - PullRequest
       5

opencv не работает с NetBeans

2 голосов
/ 12 октября 2010

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

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 ]

2 голосов
/ 12 октября 2010

Хорошо, мистер, это ваша строка компиляции прямо здесь:

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>  

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

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

Подводя итог, если вы откроете терминал и cd в каталог, где находится ваш исходный код, приведенная ниже команда может скомпилировать ваш проект ЕСЛИ у вас правильно установлен 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) сюда (назовем это funcam.cpp ). Вы можете использовать его, чтобы проверить, установлен ли OpenCV и компилирует ли что-то в вашей системе. Вы можете скомпилировать его с помощью:

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

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

1 голос
/ 01 мая 2011

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

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