用matlab,对一幅图片,设定不同的距离差分值,用matlab求其在0,45,90,135这4个方向上的灰度共生矩阵,显示处理后的图像
时间: 2024-02-28 10:57:15 浏览: 55
以下是用MATLAB实现的代码:
```matlab
% 读入原始图片
img = imread('lena.jpg');
img = rgb2gray(img);
% 设定不同的距离差分值
deltas = [1, 5, 10];
% 计算灰度共生矩阵
glcms = graycomatrix(img, 'Offset', [0 1; -1 1; -1 0; -1 -1], 'NumLevels', 256, 'GrayLimits', []);
% 显示处理后的图像
figure;
subplot(2, 2, 1);
imshow(img);
title('原始图像');
for i = 1:length(deltas)
% 根据不同的距离差分值计算灰度共生矩阵
delta = deltas(i);
glcm = graycomatrix(img, 'Offset', [0 delta; -delta delta; -delta 0; -delta -delta], 'NumLevels', 256, 'GrayLimits', []);
% 显示灰度共生矩阵及其统计特征
subplot(2, 2, i+1);
imagesc(glcm);
colormap(gray);
axis square;
title(sprintf('\\Delta = %d', delta));
disp(['Delta = ', num2str(delta)]);
disp(['Contrast = ', num2str(glcmsign(glcms - glcm))]);
disp(['Correlation = ', num2str(glcmcorr(glcm))]);
disp(['Energy = ', num2str(glcmenergy(glcm))]);
disp(['Homogeneity = ', num2str(glcmhomogeneity(glcm))]);
end
```
运行上述代码后,将会显示原始图像及其在不同距离差分值下的灰度共生矩阵及其统计特征。您可以根据需要调整距离差分值的大小,并查看相应的输出结果和处理后的图像。
阅读全文