C#调用MATLAB的COM组件 一.步骤 1.编写M函数 2..制作COM组件 a.在MATLAB工作空间中输入comtool依照步骤输入组件名及类名. (注:本人在6.5下做COM组件未成功.7.0下成功) b.编译.其中组件名_1.0.dll便是作好的组件. 3.调用COM组件 a.新建C#项目 b.添加引用 右击右边的解决方案管理器中的引用----选择COM,找到自己制作的 组件名称_1.0.dll,选择确定,即可. c.调用组件 编写调用代码 二.实例 1.无参数 a.m函数 rs_jpg function rs_jpg I=inread('c:jpg'); Imshow(I); b.COM组件 组件名称comtest,类名testclass c.调用代码 comtest.testclassClass testclass1=new comtest.testclassClass(); testclass1.rs_jpg(); 2.有参数 a.m函数 split2rgb.m split2rgb.m的源代码 %%// 测试文件 function [m_nHeight,m_nWidth,mOrigR,mOrigG,mOrigB]=Split2RGB(FileName) %%// 读入一个Jpg文件, mOrigData=imread(FileName); %mDestData=imresize(mOrigData,0.5); imwrite(mOrigData,'c:\2.jpg'); %%// 用三个变量保存其R,G,B分量 mOrigR=mOrigData(:,:,1); mOrigG=mOrigData(:,:,2); mOrigB=mOrigData(:,:,3); %%// 获得图象的高度,宽度 [m_nHeight,m_nWidth]=size(mOrigR); figure(1); set(gcf,'MenuBar','none') imshow(mOrigData); title(['Orginal Image:',FileName],'Color','b','FontSize',14); xlabel(['Height: ',num2str(m_nHeight),' Width :',num2str(m_nWidth)],'Color' ,'b','FontSize',12); %%// 写param文件 paraFName=[FileName(1:length(FileName)-4),'.param']; fid=fopen(paraFName,'w'); fwrite(fid,m_nHeight,'uint32'); fwrite(fid,m_nWidth,'uint32'); fclose(fid); %%// 写 R 分量文件 RFName=[FileName(1:length(FileName)-4),'_R.rot']; fid=fopen(RFName,'w'); fwrite(fid,mOrigR,'uint8'); fclose(fid); %%// 写 G 分量文件 GFName=[FileName(1:length(FileName)-4),'_G.rot']; fid=fopen(GFName,'w'); fwrite(fid,mOrigG,'uint8'); fclose(fid); %%// 写 B 分量文件 BFName=[FileName(1:length(FileName)-4),'_B.rot']; fid=fopen(BFName,'w'); fwrite(fid,mOrigB,'uint8'); fclose(fid); b.Com组件 组件名称comtest类名:sglttest c.c#调用代码 comtest.sgltestClass st=new comtest.sgltestClass(); object h=null,w=null,r=null,g=null,b=null; object filename="c:\\1.jpg"; st.split2rgb(5,ref h,ref w,ref r,ref g,ref b,filename);
c matlab com组件,C#调用MATLAB的COM组件
最新推荐文章于 2022-08-30 10:47:49 发布