- 积分
- 4
- 注册时间
- 2011-1-8
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 HyperGroups 于 2012-3-23 17:28 编辑
因为我的系统是win 8cp 32bit 而且vs版本也是vs11,默认搜不到编译器,所以也要指定一下,其他c编译器也类同。
Needs["CCompilerDriver`"]
CCompilers[]
$CCompiler = {"Compiler" ->
CCompilerDriver`VisualStudioCompiler`VisualStudioCompiler,
"CompilerInstallation" ->
"C:\\Program Files\\Microsoft Visual Studio 11.0"};
includeDirectory = {"C:\\Program Files\\opencv\\build\\include",
"C:\\Program Files\\opencv\\build\\include\\opencv",
"C:\\Program Files\\opencv\\build\\include\\opencv2"},
linkerOptions =
StringSplit[
"opencv_calib3d231d.lib;opencv_contrib231d.lib;opencv_core231d.lib;\
opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib;\
opencv_highgui231d.lib;opencv_imgproc231d.lib;opencv_legacy231d.lib;\
opencv_ml231d.lib;opencv_objdetect231d.lib;opencv_ts231d.lib;opencv_\
video231d.lib", ";"];
targetDirectory = Directory[] <> "\\MathematicaCV";
头文件的识别类似是这样子加些选项,库文件和头文件的指定也是,纠结了一下午,终于成功了。其实没啥特别的,主要还是
"IncludeDirectories" "LibraryDirectories""LinkerOptions"这三个选项都要设置。之前一直失败就是没有设置LinkerOptions
Debug设置完后可以方便看调试啦
mainFile = Import["picsToAvi.txt"]
picsToavi =
CreateExecutable[mainFile, "picsToavi",
"IncludeDirectories" -> includeDirectory, "Language" -> "C++",
"LibraryDirectories" ->
"C:\\Program Files\\opencv\\build\\x86\\vc10\\lib",
"Debug" -> True, "LinkerOptions" -> linkerOptions,
"TargetDirectory" -> targetDirectory]
opencv的
c++示例
#include "cv.h"
#include "highgui.h"
void Image_to_video(int argc, char *argv[])
{
int i = 0;
IplImage* img = 0;
char image_name[1000];
printf("------------- image to video ... ----------------\n");
//初始化视频编写器,参数根据实际视频文件修改
CvVideoWriter *writer = 0;
int num_frames = 73;
int isColor = 1;
int fps = 5; // or 25
int frameW = 740; // 744 for firewire cameras
int frameH = 700; // 480 for firewire cameras
writer=cvCreateVideoWriter("NewOut.avi",CV_FOURCC('M','J','P','G'),fps,cvSize(frameW,frameH),isColor);
printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n", frameH, frameW, fps);
//创建窗口
cvNamedWindow( "mainWin", CV_WINDOW_AUTOSIZE );
while(i<num_frames)
{
sprintf(image_name, "C:\\Users\\Simplexity\\Documents\\swordCircle1",++i);
img = cvLoadImage(image_name);
if(!img)
{
printf("Could not load image file...\n");
exit(0);
}
cvShowImage("mainWin", img);
char key = cvWaitKey(20);
cvWriteFrame(writer, img);
cvWaitKey(20);
}
cvReleaseVideoWriter(&writer);
cvDestroyWindow("mainWin");
}
int main(int argc, char *argv[])
{
Image_to_video(); //图片转视频
return 0;
}
大概就是这个样子啦。类似的编译成功过的例子有,读取视频,读取图片,写入视频,把没压缩过的avi弄成mjpg的avi,把jpg图片序列弄成mjpg的avi
|
评分
-
1
查看全部评分
-
|