做a的視頻在線觀看網(wǎng)站廣西傳導網(wǎng)絡科技有限公司
鶴壁市浩天電氣有限公司
2026/01/24 10:41:15
做a的視頻在線觀看網(wǎng)站,廣西傳導網(wǎng)絡科技有限公司,深圳建設局投標網(wǎng)站,杭州專業(yè)網(wǎng)站建設公司1. 灰度共生矩陣
灰度共生矩陣是迄今為止最經(jīng)典、最常用的紋理分析方法。它通過計算圖像中特定方向和距離的像素對出現(xiàn)的頻率來描述紋理。
原理簡介
GLCM是一個方陣#xff0c;其大小由圖像的最大灰度級決定。矩陣中的元素 P(i, j | d, θ) 表示在給定空間距離 d 和方向 θ 時…1. 灰度共生矩陣灰度共生矩陣是迄今為止最經(jīng)典、最常用的紋理分析方法。它通過計算圖像中特定方向和距離的像素對出現(xiàn)的頻率來描述紋理。原理簡介GLCM是一個方陣其大小由圖像的最大灰度級決定。矩陣中的元素P(i, j | d, θ)表示在給定空間距離d和方向θ時灰度級i和灰度級j成對出現(xiàn)的概率。常用方向 θ:0° (水平)45° (對角)90° (垂直)135° (反對角)從GLCM中提取的常用統(tǒng)計特征:對比度: 衡量局部灰度的變化程度反映圖像的清晰度和紋理溝壑的深淺。Contrast Σ|i-j|2 * P(i,j)相關性: 衡量圖像中局部灰度的線性相關性。Correlation Σ [ (i-μi)(j-μj) * P(i,j) ] / (σi * σj)能量: 也稱為角二階矩是灰度共生矩陣元素值的平方和。反映圖像灰度分布的均勻性和紋理的粗細程度。Energy Σ P(i,j)2同質(zhì)性: 衡量GLCM中元素分布與對角線的接近程度。值越大表示紋理越局部均勻。Homogeneity Σ P(i,j) / (1 |i-j|)熵: 衡量圖像中包含的隨機性信息量。紋理越復雜熵值越大。Entropy -Σ P(i,j) * log(P(i,j))MATLAB 代碼實現(xiàn)MATLAB提供了graycomatrix和graycoprops函數(shù)來簡化這一過程。% 示例使用MATLAB內(nèi)置函數(shù)提取GLCM特征clear;close all;clc;% 1. 讀取圖像并轉(zhuǎn)換為灰度圖imgimread(texture.jpg);ifsize(img,3)3img_grayrgb2gray(img);elseimg_grayimg;end% 2. 計算灰度共生矩陣% NumLevels: 將灰度級量化為8級默認可以更少以降低計算量% GrayLimits: 灰度范圍默認為[min(I(:)) max(I(:))]這里用[]自動計算% Offset: 指定方向和距離。這里計算4個方向0°, 45°, 90°, 135°距離為1offsets[01;-11;-10;-1-1];% 對應 0°, 45°, 90°, 135°[glcm,SI]graycomatrix(img_gray,...NumLevels,8,...GrayLimits,[],...Offset,offsets);% 3. 從GLCM中提取統(tǒng)計特征% 支持的屬性: Contrast, Correlation, Energy, Homogeneitypropsgraycoprops(glcm,{Contrast,Correlation,Energy,Homogeneity});% 4. 顯示結(jié)果disp(GLCM Features for 4 directions (0°, 45°, 90°, 135°):);disp(Contrast:);disp(props.Contrast);disp(Correlation:);disp(props.Correlation);disp(Energy (ASM):);disp(props.Energy);disp(Homogeneity:);disp(props.Homogeneity);% 5. 可視化 (可選)figure;subplot(2,3,1),imshow(img),title(Original Image);subplot(2,3,2),imshow(rescale(SI)),title(Scaled Image (for GLCM));% 顯示一個方向的GLCM (例如水平方向第一個offset)glcm_0degglcm(:,:,1);% 取第一個方向的矩陣subplot(2,3,3),imshow(glcm_0deg,[]),title(GLCM (0°));subplot(2,3,4),bar(props.Contrast),title(Contrast),xlabel(Direction Index);subplot(2,3,5),bar(props.Energy),title(Energy),xlabel(Direction Index);subplot(2,3,6),bar(props.Homogeneity),title(Homogeneity),xlabel(Direction Index);% 6. 計算平均值作為最終紋理描述符 (常用方法)mean_contrastmean(props.Contrast);mean_correlationmean(props.Correlation);mean_energymean(props.Energy);mean_homogeneitymean(props.Homogeneity);fprintf(
--- Average Feature Vector ---
);fprintf(Average Contrast: %.4f
,mean_contrast);fprintf(Average Correlation: %.4f
,mean_correlation);fprintf(Average Energy: %.4f
,mean_energy);fprintf(Average Homogeneity: %.4f
,mean_homogeneity);2. 灰度差分統(tǒng)計GLDS是一種更簡單、計算成本更低的紋理分析方法。它不關注像素對而是關注單個像素與其鄰域像素之間的灰度差。原理簡介對于圖像中的每個像素計算其與鄰域內(nèi)像素的灰度差。然后統(tǒng)計這些差值的分布并從這個分布中提取特征。常用特征:對比度:Σ |Δ| * p(Δ)(類似于GLCM但基于差分)角度二階矩:Σ p(Δ)2(類似于GLCM的能量)熵:-Σ p(Δ) * log(p(Δ))(類似于GLCM的熵)均值:Σ Δ * p(Δ)逆差分矩:Σ p(Δ) / (1 Δ2)(類似于GLCM的同質(zhì)性)MATLAB 代碼實現(xiàn)MATLAB沒有內(nèi)置GLDS函數(shù)需要手動實現(xiàn)。% 示例手動實現(xiàn)GLDS特征提取functionfeaturesextract_glds_features(img_gray,delta_x,delta_y)% 此函數(shù)計算給定偏移量(delta_x, delta_y)的GLDS特征% img_gray: 輸入灰度圖像% delta_x, delta_y: 定義鄰域關系的偏移量[rows,cols]size(img_gray);% 1. 計算灰度差分圖像% 創(chuàng)建與原始圖像同大小的矩陣來存儲差分diff_imgzeros(rows,cols);% 計算有效的像素位置避免邊界問題start_rowmax(1,1-delta_y);end_rowmin(rows,rows-delta_y);start_colmax(1,1-delta_x);end_colmin(cols,cols-delta_x);foristart_row:end_rowforjstart_col:end_col% 計算當前像素與鄰域像素的絕對灰度差current_pixelimg_gray(i,j);neighbor_pixelimg_gray(idelta_y,jdelta_x);diff_img(i,j)abs(double(current_pixel)-double(neighbor_pixel));endend% 2. 構(gòu)建灰度差分直方圖 (概率分布)% 將差分值量化為整數(shù)最大差值為255diff_vectordiff_img(diff_img0);% 只取非零差分邊界處為零ifisempty(diff_vector)featureszeros(1,5);return;endnum_bins256;% 差分范圍是0-255phistcounts(diff_vector,0:num_bins,Normalization,probability);% 3. 從差分直方圖中提取統(tǒng)計特征delta0:(num_bins-1);% 可能的差分值% 對比度contrastsum(delta.*p);% 角度二階矩 (能量)asmsum(p.^2);% 熵 (避免log(0)給p一個很小的偏移量)epsilon1e-10;p_safepepsilon;entropy-sum(p.*log2(p_safe));% 均值mean_valuesum(delta.*p);% 逆差分矩idmsum(p./(1delta.^2));% 4. 返回特征向量features[contrast,asm,entropy,mean_value,idm];end% 使用上述函數(shù)clear;close all;clc;% 讀取圖像imgimread(texture.jpg);ifsize(img,3)3img_grayrgb2gray(img);elseimg_grayimg;end% 定義4個方向類似于GLCMdirections[1,0;% 0° (水平)1,1;% 45° (對角)0,1;% 90° (垂直)-1,1];% 135° (反對角)% 為每個方向提取GLDS特征glds_features[];fork1:size(directions,1)delta_xdirections(k,1);delta_ydirections(k,2);features_single_dirextract_glds_features(img_gray,delta_x,delta_y);glds_features[glds_features;features_single_dir];end% 顯示結(jié)果feature_names{Contrast,Energy (ASM),Entropy,Mean,Inverse Diff Moment};direction_names{0°,45°,90°,135°};disp(GLDS Features for 4 directions:);fprintf(Direction );forf1:length(feature_names)fprintf(%s ,feature_names{f});endfprintf(
);ford1:size(glds_features,1)fprintf(%s ,direction_names0ghprlcq);forf1:size(glds_features,2)fprintf(%.4f ,glds_features(d,f));endfprintf(
);end% 計算平均特征向量mean_glds_featuresmean(glds_features,1);fprintf(
--- Average GLDS Feature Vector ---
);forf1:length(feature_names)fprintf(%s: %.4f
,feature_names{f},mean_glds_features(f));end總結(jié)與比較特征灰度共生矩陣灰度差分統(tǒng)計原理基于像素對的二階統(tǒng)計基于像素差的一階統(tǒng)計計算復雜度較高較低MATLAB支持內(nèi)置函數(shù) (graycomatrix,graycoprops)需手動實現(xiàn)描述能力強能捕捉更復雜的紋理結(jié)構(gòu)較弱但對簡單紋理有效魯棒性較好對噪聲相對敏感適用場景復雜的自然紋理、醫(yī)學圖像分析實時應用、計算資源有限的場景參考代碼 matlab常用紋理特征提取方法GLCMGLDSwww.3dddown.com/csa/65376.html實用建議:對于大多數(shù)應用GLCM是首選因為它更成熟特征描述能力更強。在實際項目中通常會將多個方向的特征取平均值或最大值以得到旋轉(zhuǎn)不變的紋理描述符??梢越Y(jié)合多種方法如GLCM GLDS來構(gòu)建更強大的特征向量用于機器學習分類。在計算前通常會對圖像灰度級進行降級如從256級降到8級以降低計算復雜度和噪聲影響。