完成功能下:
C++中产生一个256X256大小的数组A;现在要在这个数组显示为一个灰度图像,然后把该数组里面的每一个值乘2后返回给原数组:
C++程序如下:
#include "stdafx.h"
#include
#include //memcpy()
#include "engine.h"
#include
using namespace std;
int main(int argc, char* argv[])
{
Engine *eg=NULL;
double A[256][256];
if(!(eg=engOpen(NULL))) //windows下这里的参数只能是NULL
{
MessageBox((HWND)NULL,(LPSTR)"can't start MATLAB engine",(LPSTR)"MATLAB engine",MB_OK);
}
for(int i=0;i<256;i++)
for(int j=0;j<256;j++)
A[i][j]=i; //产生数组;
mxArray *im;
im=mxCreateDoubleMatrix(256,256,mxREAL);
memcpy((void *)mxGetPr(im),(void *)A,sizeof(A));
engPutVariable(eg,"im",im);
engEvalStri