3,882
社区成员
发帖
与我相关
我的任务
分享
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/*matlab调用部分*/
#include <engine.h>
#include <matrix.h>
#include <mat.h>
#pragma comment(lib,"libeng.lib")
#pragma comment(lib,"libmx.lib")
#pragma comment(lib,"libmat.lib")
void main()
{
Engine *ep = engOpen (NULL); //启用matlab引擎
engSetVisible(ep,0);//关闭matlab调用窗口
engEvalString(ep,"cd work");//调整工作空间到work
int i=0;
mxArray *pi=mxCreateNumericMatrix(1,1,mxINT32_CLASS,mxREAL);
mxSetData(pi,&i);
printf("run here!");
/*调用matlab处理彩色图像为灰度图像,保存灰度图像并保存为二维数组*/
int times=100; //处理图片帧数
engEvalString(ep,"name='动态图像分析'");
for(i=0;i<times;i++)
{
if(i<10)
{
engPutVariable(ep,"i",pi);
engEvalString(ep,"baseName=strcat(name,'000',num2str(i));");
}
else if(i<100)
{
engPutVariable(ep,"i",pi);
engEvalString(ep,"baseName=strcat(name,'00',num2str(i));");
}
else if(i<1000)
{
engPutVariable(ep,"i",pi);
engEvalString(ep,"baseName=strcat(name,'0',num2str(i));");
}
else
{
engPutVariable(ep,"i",pi);
engEvalString(ep,"baseName=strcat(name,num2str(i));");
}
engEvalString(ep,"imageName=strcat(baseName,'.jpg');");
engEvalString(ep,"I= imread(imageName);");
engEvalString(ep,"J=rgb2gray(I);");
engEvalString(ep,"fname=strcat(baseName,'.bmp');");
engEvalString(ep,"imwrite(J,fname);");
}
engClose(ep);//释放matlab引擎
}