C#调用MATLAB的COM组件
来源:互联网 发布:mysql存储emoji乱码 编辑:程序博客网 时间:2024/05/17 23:11
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);
一.步骤
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组件的实例
- C#调用MATLAB的COM组件中如果调用非自带的工具箱函数
- C#调用COM组件
- VC调用C#写的COM+组件
- VC调用C#写的COM+组件
- VC调用C#的COM组件(DLL)
- VC调用C#写的COM组件
- VC调用C#的COM组件(DLL)
- VC调用C#的COM组件(DLL)
- C++ 调用 C#的COM组件
- C++调用C#编写的COM组件
- JavaScript调用C#编写的COM组件
- c# 中调用COM组件
- C#调用C++COM组件
- C++调用C# COM组件
- C++调用C# COM组件
- C++调用C# com组件
- 敏捷开发一千零一问系列之二十二: UI设计怎么做到敏捷呢?(兼谈对UI热的理解)(上)
- linux下的时间编程
- 推荐top 10源代码搜索引擎
- 敏捷开发一千零一问系列之二十四: UI设计怎么做到敏捷呢?(兼谈对UI热的理解)(下)
- PHP代码的优化
- C#调用MATLAB的COM组件
- 关于ArcGIS API for JavaScript与Dojo
- linux 创建桌面方式
- HTML5手机的春天, Web Apps来袭
- pmon启动流程
- Matlab参数传递方法
- Activity生命周期深入理解2
- 《一步一脚印 90后程序员》14
- android 控件布局(顶部、底部......) 留着自己用