I opencv mit Macports die Anweisungen hier folgende installiert haben: Compile OpenCV (2.3.1+) for OS X Lion/Mountain Lion with XcodeEinbinden von Bibliotheken OpenCV 2.4.2 auf Xcode 4.5.1
ich auch suchen haben und versucht, jede andere Variation davon auf Stack und Google, aber dies scheint hol mich am nächsten.
Es scheint für einige Dinge zu funktionieren, aber nicht für Beispielcode, der mit 2.4.2 ausgeliefert wird. Beachten Sie, dass ich ALL opencv 2.4.2 dylibs Link Binary mit Bibliotheken hinzugefügt habe.
Zum Beispiel werden die folgenden kompilieren und ausführen:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main (int argc, char **argv)
{
cvNamedWindow("My Window", 1);
IplImage *img = cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 1);
CvFont font;
double hScale = 1.0;
double vScale = 1.0;
int lineWidth = 1;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
hScale, vScale, 0, lineWidth);
cvPutText(img, "Hello World!", cvPoint(200, 400), &font,
cvScalar(255, 255, 0));
cvShowImage("My Window", img);
cvWaitKey();
return 0;
}
Allerdings, wenn ich versuchen, eine der Proben, wie zum Beispiel die display_image.cpp, Beispiel zu bauen, wie folgt, ich Linkfehler bekommen.
-nicht Work-
#include <stdio.h>
#include <iostream>
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/flann/miniflann.hpp"
using namespace cv; // all the new API is put into "cv" namespace. Export its content
using namespace std;
using namespace cv::flann;
static void help()
{
cout <<
"\nThis program shows how to use cv::Mat and IplImages converting back and forth.\n"
"It shows reading of images, converting to planes and merging back, color conversion\n"
"and also iterating through pixels.\n"
"Call:\n"
"./image [image-name Default: lena.jpg]\n" << endl;
}
int main(int argc, char *argv[])
{
help();
const char* imagename = argc > 1 ? argv[1] : "lena.jpg";
Mat img = imread(imagename); // the newer cvLoadImage alternative, MATLAB-style function
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
if(!img.data) // check if the image has been loaded properly
return -1;
Mat img_yuv;
cvtColor(img, img_yuv, CV_BGR2YCrCb); // convert image to YUV color space. The output image will be created automatically
vector<Mat> planes; // Vector is template vector class, similar to STL's vector. It can store matrices too.
split(img_yuv, planes); // split the image into separate color planes
imshow("image with grain", img);
waitKey();
return 0;
}
ich folgende Fehlermeldungen erhalten:
Undefined symbols for architecture x86_64:
"cv::split(cv::Mat const&, std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> >&)", referenced from:
_main in main1.o
"cv::imread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
_main in main1.o
"cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)", referenced from:
_main in main1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Irgendeine Idee, wie man dieses Problem beheben?
Anthony und Marco gaben Ihnen die richtige Antwort unten. Es ist eines dieser Dinge, dass, sobald Sie es erfahren, Sie es für immer wissen. Sie sollten eine Antwort akzeptieren, um zukünftigen Besuchern zu helfen. – jww