MATLAB图像处理:图像截取与灰度调整
需积分: 10 11 浏览量
更新于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 上传
756 浏览量
2023-07-29 上传
2023-06-05 上传
2023-07-14 上传
2021-09-14 上传
2021-09-14 上传
2023-07-29 上传
Flemington、
- 粉丝: 60
- 资源: 9
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜