选择个人生活照作为测试图像,图像格式为jpg,并读取测试图像,设定不同的距离差分值,用MATLAB求其在0,45,90,135这4个方向上的灰度共生矩阵
时间: 2024-02-27 09:56:01 浏览: 95
好的,以下是MATLAB代码:
```matlab
% 读取测试图像
img = imread('test.jpg');
% 灰度化
gray_img = rgb2gray(img);
% 设定距离差分值
distances = [1, 2, 3];
% 设定灰度级别
levels = 256;
% 计算灰度共生矩阵
glcms = graycomatrix(gray_img, 'Offset', [0 1; -1 1; -1 0; -1 -1], 'GrayLimits', [0 levels-1], 'NumLevels', levels, 'Symmetric', true);
% 计算不同距离差分值下的灰度共生矩阵
for i = 1:length(distances)
glcm = graycoprops(glcms(:, :, :, i), {'Contrast', 'Energy', 'Homogeneity', 'Correlation'});
fprintf('距离差分值为%d时的灰度共生矩阵:\n', distances(i));
disp(glcm)
end
```
这段代码中,首先读取测试图像,然后将图像灰度化。接着,设定距离差分值和灰度级别,然后使用graycomatrix函数计算图像在0、45、90和135度方向上的灰度共生矩阵,最后使用graycoprops函数计算不同距离差分值下的灰度共生矩阵的对比度、能量、同质性和相关性。
阅读全文