matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例

时间:2021-05-22

一阶矩,定义了每个颜色分量的平均强度

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

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

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; endendJske = (colorsum/(mm*mn))^(1/3) %求原图像的三阶矩colorsum = 0.0;for i=1:pp for j=1:qq colorsum = colorsum + (J(i,j)-Kavg)^3; endendKske = (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表示按行划分

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

图像的重心

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

计算公式:

其中(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+'); %十字标出重心位置

图像的二阶矩

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

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

计算方法:

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

以上这篇matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章