MATLAB图像处理:图像截取与灰度调整
需积分: 10 116 浏览量
更新于2024-09-10
收藏 975KB DOCX 举报
"这篇资源主要涉及的是MATLAB在图像处理中的应用,包括图像的规范化、图像的裁剪以及灰度图像的分辨率降低。"
在MATLAB中,图像处理是一项重要的功能,这里给出了三个不同的任务来展示如何操作图像。
1. 图像规范化的MATLAB实现:
在图像处理中,规范化是为了使图像的像素值在一个特定的范围内,例如0到1。程序中的错误主要在 Line 7 和 Line 8。Line 7 应该将图像的最小值减去,以确保所有像素值非负,而Line 8 应该除以最大像素值来得到归一化值。修正后的代码如下:
```matlab
f = f - min(f(:)); % 将图像的最小值减去
f = f ./ max(f(:)); % 除以最大值进行归一化
```
2. 图像裁剪与显示:
这个任务要求读取图像,然后以图像中心为中心裁剪出原图的一半,并在同一个窗口并排显示原图和裁剪后的图像。MATLAB代码如下:
```matlab
I = imread('rose.tif'); % 读取图像
[MN] = size(I); % 获取图像尺寸
J = uint8(zeros(M/2, N/2)); % 初始化裁剪后的图像矩阵
J = I(M/2-M/4:M/2+M/4, N/2-N/4:N/2+M/4); % 裁剪图像
figure, subplot(121), imshow(I); % 显示原图
subplot(122), imshow(J); % 显示裁剪后的图像
```
3. 灰度图像分辨率降低:
函数 `hw2_3` 的目标是将输入图像的灰度级别减少到原来的1/32,并保持输入图像的数据类型。首先,如果输入是double类型,需要将其乘以255转换为0-255范围。然后,通过除以32并向下取整来降低灰度分辨率。最后,根据输入图像的类型(double或uint8),转换新图像的值。修正后的函数如下:
```matlab
function J = hw2_3(I)
if strcmp(class(I), 'double')
I_255 = I * 255;
else
I_255 = double(I);
end
J = floor(I_255 / 32); % 降低灰度分辨率
J = mat2gray(J); % 转换为归一化值
if strcmp(class(I), 'uint8')
J = uint8(J * 255);
end
end
```
这些MATLAB代码示例展示了基本的图像处理操作,如读取图像、图像裁剪、规范化、灰度级别的调整以及数据类型的转换,这些都是在图像处理领域常见的任务。
2023-06-04 上传
759 浏览量
2019-08-13 上传
2023-03-31 上传
2023-05-13 上传
2023-09-27 上传
2023-11-16 上传
2024-06-13 上传
2023-12-09 上传
Flemington、
- 粉丝: 60
- 资源: 9
最新资源
- watch-bash:Unix(Linux Mac OS X)监视文件更改为concat或..做某事。 (重击shell脚本)
- helion-rabbitmq-java:这是一个简单的基于 Servlet 的 Java web 应用程序,它使用 RabbitMQ
- springAngular:Todos los archivos del curso de springAngular
- 电子功用-用于升级电子设备的系统的方法
- online_farmers_market
- export-pdf
- VirtualChair-开源
- json_api_transform
- linux-Termux一键安装Linux脚本.zip
- 投资组合:琼·克拉克的单页个人投资组合页面
- 在设计器中使用qml自定义Quick模块(使用qml源码) 测试源码
- restaurant-template:为机器人餐厅模板准备的后端
- 电子功用-变电站温湿度在线监测预警系统
- InterfaceComponent:这个界面组件提供了一个滑动标签界面,任何人都可以使用它轻松地为他们的应用程序提供多片段活动
- kasparov:Kasparov是一个Web面板,用于管理远程服务器并在其上执行一些常见任务,专为希望执行一些基本任务(例如设置Web服务器)的非技术人员设计
- 51单片机不同数据类型的延时函数控制LED灯闪烁源代码