咿呀咿呀吆 发表于 2007-5-28 16:48

关于图象原点矩的累加问题

http://www1.freep.cn/Photo.php?url=photo5/0705281643051402.JPG
我想请教一下如何实现这个式子

我自己这样编写的

=size(I1);
sumn=0;
summ=0;
for m=1:M,
    for n=1:N,
      sumn=sumn+m.^p.*n.^q.*I1(m,n);   
    end
    summ=summ+sumn;
end
m(p,q)=summ;
运行的时候总是报错说p q没有定义
可是我不知道该如何定义

麻烦大家帮忙看看
谢谢了

[ 本帖最后由 eight 于 2007-5-29 10:54 编辑 ]

rocwoods 发表于 2007-5-28 17:15

譬如p=2;q=3;
不用循环方式的完整代码如下:
=size(I1);
p=2;q=3;
=meshgrid(1:M,1:N);
Z=X.^p.*Y.^q.*I1;
m_pq=sum(Z(:));

咿呀咿呀吆 发表于 2007-5-28 17:34

谢谢

因为在以后的计算中需要用到p q为任何值的时候的m_pq
所以我想是不是可以在不给p q赋具体值的情况下得出m_pq
然后在以后的运算中方便的调用p q为任何值的时候的m_pq

eight 发表于 2007-5-28 17:38

原帖由 咿呀咿呀吆 于 2007-5-28 17:34 发表 http://www.chinavib.com/forum/images/common/back.gif
谢谢

因为在以后的计算中需要用到p q为任何值的时候的m_pq
所以我想是不是可以在不给p q赋具体值的情况下得出m_pq
然后在以后的运算中方便的调用p q为任何值的时候的m_pq

建议做成函数,p、q作为输入

咿呀咿呀吆 发表于 2007-5-28 17:48

原帖由 eight 于 2007-5-28 17:38 发表 http://www.chinavib.com/forum/images/common/back.gif
建议做成函数,p、q作为输入

谢谢,我再想想看


另外
??? Error using ==> .*
Function '.*' is not defined for values of class 'uint8'.

这个报错是什么原因
我用的是二值图象
是不是图象类型的问题

yimao 发表于 2007-5-28 17:58

原帖由 咿呀咿呀吆 于 2007-5-28 17:48 发表 http://www.chinavib.com/forum/images/common/back.gif


谢谢,我再想想看


另外
??? Error using ==> .*
Function '.*' is not defined for values of class 'uint8'.

这个报错是什么原因
我用的是二值图象
是不是图象类型的问题

数据不是 矩阵性质吧

咿呀咿呀吆 发表于 2007-5-29 10:48

麻烦大家再帮我看看,我的程序是这样的:
data=('C:\Documents and Settings\Administrator\桌面\test12.jpg')
I1=imread(data);
level1=graythresh(I1);
A1=im2bw(I1,level1);
subplot(2,4,1),imshow(I1);
title('原图像');
subplot(2,4,5),imshow(A1);
title('原图像的二值图');
=size(I1);
p=0;q=0;
=meshgrid(1:M,1:N);   
Z=X.^p.*Y.^q.*I1;
m_00=sum(Z(:))

这个报错完全不懂
麻烦大家指点一下

??? Error using ==> .*
Function '.*' is not defined for values of class 'uint8'.
Error in ==> C:\MATLAB6p5\work\absent.m
On line 12 ==> Z=X.^p.*Y.^q.*I1;

eight 发表于 2007-5-29 10:53

原帖由 咿呀咿呀吆 于 2007-5-29 10:48 发表 http://www.chinavib.com/forum/images/common/back.gif
麻烦大家再帮我看看,我的程序是这样的:
data=('C:\Documents and Settings\Administrator\桌面\test12.jpg')
I1=imread(data);
level1=graythresh(I1);
A1=im2bw(I1,level1);
subplot(2,4,1),imshow(I1);
...


I1 = double(I1);
Z=X.^p.*Y.^q.*I1;


试试吧,我这里电脑没有安装 matlab,所以不敢肯定,呵呵

咿呀咿呀吆 发表于 2007-5-29 10:57

可以了 谢谢
页: [1]
查看完整版本: 关于图象原点矩的累加问题