您好,登錄后才能下訂單哦!
這篇文章主要講解了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表示按行劃分
補充知識:圖像的重心和二階矩
圖像的重心
圖像實際上就是個矩陣,每個位置的元素就是該處的像素。 這里碰到了求圖像重心的問題,特此總結:
計算公式:
其中(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怎么計算灰度圖像的一階矩,二階矩,三階矩有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。