温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

发布时间:2020-08-01 11:08:02 来源:亿速云 阅读:641 作者:小猪 栏目:开发技术

这篇文章主要讲解了matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

二阶矩,反映待测区域颜色方差,即不均匀性

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

三阶矩,定义了颜色分量的偏斜度,即颜色的不对称性

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

close all;clear all;clc;
J = imread('lena.jpg');
K = imadjust(J,[70/255 160/255],[]);
figure;
subplot(121),imshow(J);
subplot(122),imshow(K);
[m,n] = size(J);
mm = round(m/2);
mn = round(n/2);
[p,q] = size(K);
pp = round(p/2);
qq = round(q/2);
J = double(J);
K = double(K);
colorsum = 0.0;
Javg = mean2(J) %求原图像一阶矩
Kavg = mean2(K) %求增强对比度后的图像一阶矩
Jstd = std(std(J)) %求原图像的二阶矩,因为一次std函数表示按列求标准差,两次std表示求整个矩阵的标准差
Kstd = std(std(K)) %求增强对比度后的图像二阶矩
for i=1:mm
 for j=1:mn
  colorsum = colorsum+(J(i,j)-Javg)^3;
 end
end
Jske = (colorsum/(mm*mn))^(1/3) %求原图像的三阶矩
colorsum = 0.0;
for i=1:pp
 for j=1:qq
  colorsum = colorsum + (J(i,j)-Kavg)^3;
 end
end
Kske = (colorsum/(pp*qq))^(1/3) %求增强对比度后的图像三阶矩

部分函数说明:

mean2(A) : 求矩阵A的均值

std(x,flag,dim): 求x的标准偏差

std(x,0,1) : 0表示求标准差时除n-1,1表示按列划分

std(x,1,2) : 1表示求标准差时除n,2表示按行划分

补充知识:图像的重心和二阶矩

图像的重心

图像实际上就是个矩阵,每个位置的元素就是该处的像素。 这里碰到了求图像重心的问题,特此总结:

计算公式:

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

其中(xi,yi)是像素点的坐标,pi是该点的像素值。

以下是利用matlab求图像重心

I = imread(‘1.jpg');
I = rgb2gray(I);
imshow(I);
I = double(I);
[rows,cols] = size(I);
x = ones(rows,1)*[1:cols];
y = [1:rows]'*ones(1,cols);
area = sum(sum(I));
meanx = sum(sum(I.*x))/area;
meany = sum(sum(I.*y))/area;
hold on;
plot(meanx,meany,'r+'); %十字标出重心位置

图像的二阶矩

我们这里只讨论二阶矩的问题。

二阶矩最终是形成了一个二阶矩阵,如下:

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

计算方法:

matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩

其中(r0,c0)是重心坐标。

看完上述内容,是不是对matlab怎么计算灰度图像的一阶矩,二阶矩,三阶矩有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI