clear all; close all;
m = 256; n = 256;
a = 0.04;
k = -1 / a;
I = k * log(1 - rand(m, n));
figure;
subplot(121);
imshow(uint8(I));
title('Generated Image with Logarithmic Intensity');
subplot(122);
imhist(uint8(I));
title('Histogram of Generated Image');
解释:
-
clear all; close all;
:清空工作空间中的所有变量并关闭所有图形窗口。 -
m = 256; n = 256;
:定义图像的大小为256x256像素。 -
a = 0.04;
:定义一个常数a
,用于控制生成图像的对比度。 -
k = -1 / a;
:计算常数k
,它是a
的倒数乘以-1。 -
I = k * log(1 - rand(m, n));
:生成一个256x256的图像矩阵I
,其中每个像素的值通过对数变换得到,变换基于1 - rand(m, n)
,rand(m, n)
生成一个在0到1之间的随机矩阵。 -
figure;
:创建一个新的图形窗口。 -
subplot(121); imshow(uint8(I));
:在第一个子图(1,2,1)中以uint8格式显示生成的图像I
。 -
subplot(122); imhist(uint8(I));
:在第二个子图(1,2,2)中显示生成图像的直方图。
拓展:
- 保存图像和直方图:可以将生成的图像和它的直方图保存为文件。
% 保存生成的图像和直方图
imwrite(uint8(I), 'log_intensity_image.png');
figure;
subplot(121);
imshow(uint8(I));
title('Generated Image with Logarithmic Intensity');
subplot(122);
imhist(uint8(I));
title('Histogram of Generated Image');
saveas(gcf, 'histogram_of_log_intensity_image.png');
-
分析图像特性:可以进一步分析生成图像的特性,比如通过计算图像的均值和方差。
-
修改对比度参数:可以尝试使用不同的对比度参数
a
,来观察对图像的影响。 -
使用不同的随机数分布:可以尝试使用不同的随机数分布,如正态分布等,来生成图像。
-
比较不同对比度参数的影响:可以比较不同对比度参数
a
对生成图像的影响,以评估不同参数对图像特性的影响。