導師那有好些系列圖像,想弄成電影。查了一下matlab的幫助,輕松地實現了,轉化成avi格式電影!以下是代碼:
function produceavifrompic(pfrom,pto,pext,navi)
aviobj = avifile(navi);
aviobj.Quality = 100;
aviobj.compression='None';
cola=0:1/255:1;
cola=[cola;cola;cola];%%黑白圖像
cola=cola';
aviobj.colormap=cola;
for i=pfrom:pto
fname=strcat(num2str(i),pext)
adata=imread(fname);
aviobj = addframe(aviobj,uint8(adata));
end
aviobj=close(aviobj);
以上是將一系列8位黑白圖像轉化成avi格式電影,如果是彩色圖像,則如下
function produceavifrompic(pfrom,pto,pext,navi)
aviobj = avifile(navi);
aviobj.Quality = 100;
aviobj.compression='None';
for i=pfrom:pto
fname=strcat(num2str(i),pext)
adata=imread(fname);
aviobj = addframe(aviobj,uint8(adata));
end
aviobj=close(aviobj);
挺簡單的吧!快去試試!
=============================================
自己用的時候如下:在Matlab中一行行輸入
aviobj = avifile(navi);
aviobj.Quality = 100;
aviobj.Fps = 10;
aviobj.compression='None';
for i=pfrom:pto ;此處修改成自己的范圍
fname=strcat('snapshot',num2str(i),'.jpg')
adata=imread(fname);
aviobj = addframe(aviobj,uint8(adata));
end
aviobj=close(aviobj);
OK。

#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;

int main(int argc,char** argv)

{
if (argc < 4)
{
cout<<"usage: ScaleModel.exe [in modelName] [outModelName] [percentage]"<<endl;
return 0;
}
ifstream inStream;
inStream.open(argv[1],ios::in);
ofstream outStream;
outStream.open(argv[2],ios::out);
string inString;
char ch;
float p0,p1,p2;
while (!inStream.eof() )
{
//getline(inStream,inString,"\n");
getline(inStream,inString,'\n');
if(inString[0] == 'v')
{
sscanf(inString.c_str(),"%c %f %f %f",&ch,&p0,&p1,&p2);
p0 *= atof(argv[3]);
p1 *= atof(argv[3]);
p2 *= atof(argv[3]);
outStream<<ch<<" "<<p0<<" "<<p1<<" "<<p2<<endl;
}
else
{
outStream<<inString<<endl;
}
}
return 0;
}
在用HM NSIS Editor生成的基本腳本的Section –Post中加入如下代碼
Push “OGRE_HOME”
Push $INSTDIR
Call WriteEnvStr
#改變Path變量,將dll導入以便運行程序
Push “PATH”
Push
%PATH%$INSTDIR\Dll ;將可執行程序的路徑加入。
Call WriteEnvStr
制作升級包也容易了,只需要用ReadEnvStr讀環境變量,然后將安裝路徑設成所讀的環境變量。 Function .onInit
ReadEnvStr $R0 "OGRE_HOME"
#MessageBox MB_OK $R0
Strcmp $R0 "" 0 NOABORT
MessageBox MB_OK "沒有找到之前安裝的OGRE"
NOABORT:
Strcpy $INSTDIR $R0
FunctionEnd
