帮我在matlab中完成,写代码完成 4.绘制三幅 256*256 的灰度图像并在屏幕上显示出来,要求三幅灰度图像亮度渐变分别按如下要求实现:变化趋势分别为左暗-右亮、左上暗-中间亮-右下暗,左下暗-中间亮-右上暗;
时间: 2024-09-26 19:04:27 浏览: 95
在MATLAB中,你可以使用`imread`函数读取一张图片,并使用`imresize`调整大小到256x256。然后,为了创建灰度图像并改变亮度,我们可以使用线性变换或者直接操作像素值。下面是一个简单的示例,展示如何按照你的描述实现这个过程:
```matlab
% 创建一个256x256的全零矩阵作为基础灰度图
img_base = zeros(256, 256);
% 创建三个图像
for i = 1:3
switch i
case 1 % 左暗 - 右亮
img = img_base + (1:size(img_base, 2))';
case 2 % 左上暗 - 中间亮 - 右下暗
img_top_left = img_base .* [1:size(img_base, 1)'/2; 1:size(img_base, 2)/2];
img_center = img_base;
img_bottom_right = img_base .* [(size(img_base, 1)+1)/2:end, (size(img_base, 2)+1)/2:end];
img = img_top_left + img_center + img_bottom_right;
case 3 % 左下暗 - 中间亮 - 右上暗
img_top_left = img_base .* [1:size(img_base, 1)/2, 1:size(img_base, 2)/2];
img_center = img_base;
img_bottom_right = img_base .* [(size(img_base, 1)+1)/2:end, (size(img_base, 2)+1)/2:end];
img = img_top_left + img_center + flipud(img_bottom_right);
end
% 确保图像的值在0-255范围内,转换为uint8类型的灰度图
img = uint8(min(max(img, 0), 255));
% 显示图像
figure(i)
imshow(img)
end
% 保存结果
saveas(gcf, ['gradient_' num2str(i) '.jpg'], 'JPEG');
阅读全文