我在嵌入式目标板上使用 OpenCV(FriendlyARM mini6410,运行 linux 内核 2.6.38 的处理器臂 1176)。我使用为开发板提供的工具链编译 OpenCV 2.4.4 库,在 ftp 中找到(请参阅 FriendlyARM 的网站)。我禁用了 GTK、ffmpeg 并启用了 v4l。库编译成功。
然后我写代码:
#include <opencv.hpp>
#include <highgui/highgui.hpp>
#include <imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
using namespace cv;
using namespace std;
int main()
{
int i;
cout << "initialise" << endl;
IplImage* img=0;
cout << "capturing ..." << endl;
CvCapture* capture = cvCaptureFromCAM(2);
cout << "get here" << endl;
if(!capture){
cout << "not capture" << endl;
return -1;
}
cout << "captured" << endl;
img=cvQueryFrame(capture);
IplImage* img1 = cvCreateImage(cvGetSize(img),8,3);
// cvCvtColor(img,img1,CV_RGB2GRAY);
cvCopy(img, img1);
cvSaveImage("cam_snap.jpg",img1);
cvReleaseImage( &img1 );
cvReleaseImage( &img );
cvReleaseCapture( &capture );
cout << "exit" << endl;
return 0;
}
代码构建成功。我在目标板上运行 .elf 可执行文件,连接到相机(PS3 eye),但生成的图像看起来像一台坏掉的电视(类似噪音):
在我的主机中,生成的图像与预期的一样(镜头前的场景)。您能否就出了什么问题或我应该从哪里开始调试提供建议?