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); 本文出自 51CTO.COM技术博客 |


yaya123
博客统计信息
热门文章
最新评论
友情链接