dxwwangyan 发表于 2006-3-23 11:41

求助:MATLAB图像处理与VB接口问题

我在用MATLAB做图像处理的时候,遇到这样的问题,请教一下大家,谢谢!
MATLAB的M文件如下:
function c=myfil(i,x)
global c;
if(i==1)
c=medfilt2(x,);
elseif(i==2)
c=ordfilt2(x,5,ones(3,3));
end
imshow(c)

然后我用COM BUILDER生成DLL后,在VB中调用,VB的代码如下:
Dim thepic As myprocess.myprocessclass
Dim i As Integer
Dim x, c As Variant

Private Sub Command1_Click()
i = 1
x = Image1.Picture
Call thepic.myfil(1, c, i, x)
Image1.Picture = c
End Sub

Private Sub Form_Load()
Set thepic = New myprocess.myprocessclass
End Sub

运行时出这样的错误:
Error using---imshow>getclimfromcdataclass
unsupported image class
请大家帮我看看,应该怎么解决这个问题,谢谢!

[ 本帖最后由 yejet 于 2006-11-1 21:51 编辑 ]

happy 发表于 2006-3-23 21:47

回复:(dxwwangyan)求助:MATLAB图像处理与VB接口问...

imshow用错了
图片数据必须是uint8,logical,uint16,double

看看帮助,先在matlab里把m文件调通

[ 本帖最后由 yejet 于 2006-11-1 21:51 编辑 ]

dxwwangyan 发表于 2006-3-23 21:56

<P>谢谢happy!我在MATLAB中已经调试通过之后,才生成COM组件的。我想是参数传递的问题,但我不知道该怎么改。</P>

happy 发表于 2006-3-23 21:59

回复:(dxwwangyan)谢谢happy!我在MATLAB中已经调试...

不好意思,我不会vb

[ 本帖最后由 yejet 于 2006-11-1 21:52 编辑 ]

dxwwangyan 发表于 2006-3-23 22:27

回复:(dxwwangyan)求助:MATLAB图像处理与VB接口问...

非常感谢happy!另外我还有个小程序在MATLAB中调试时出错,帮我看看吧。
x1=imread('111.bmp');
figure,imshow(i)
=size(x1);
x2=double(x1);
h=zeros(1,255);
for i=1:m
for j=1:n
l=x2(i,j);
k=uint8(l);
h(k)=h(k)+1;
end
end运行时提示:
??? Attempted to access h(0); index must be a positive integer or logical.

Error in ==> myhist at 10
h(k)=h(k)+1;
谢谢了!

[ 本帖最后由 yejet 于 2006-11-1 21:52 编辑 ]

happy 发表于 2006-3-24 07:40

回复:(dxwwangyan)回复:(dxwwangyan)求助:MATL...

在你的运算中k有可能出现0,但是h(0)这个值不存在

[ 本帖最后由 yejet 于 2006-11-1 21:52 编辑 ]

dxwwangyan 发表于 2006-3-24 10:18

回复:(dxwwangyan)求助:MATLAB图像处理与VB接口问...

<P>谢谢HAPPY!问题已经解决了。VB和MATLAB接口的问题还请多指教!</P>

miao7mijao 发表于 2006-11-1 13:59

你好,请教m文件如何做成com组件的??
页: [1]
查看完整版本: 求助:MATLAB图像处理与VB接口问题