数字图像matlab实现原图像 图像取反 扩展灰度范围 压缩灰度范围代码
时间: 2024-09-22 22:05:18 浏览: 43
基于Matlab实现灰度图像赫夫曼编码(数字图像处理实验).zip
5星 · 资源好评率100%
在MATLAB中,处理数字图像通常涉及到读取、操作和显示图像。以下是针对你提到的几个步骤的基本代码示例:
1. **读取原始图像**:
```matlab
% 加载图像
img = imread('example.jpg'); % 替换 'example.jpg' 为你要处理的图片文件名
```
2. **图像取反**:
```matlab
% 对图像做位运算取反
img_inverted = imcomplement(img);
```
`imcomplement`函数会将图像中的每个像素值减去255,实现了取反的效果。
3. **扩展灰度范围**:
如果想将图像的灰度值扩大到更大的范围,比如从0-255扩展到0-511,可以这样做:
```matlab
% 创建新矩阵,扩展灰度范围
new_range = 2 * img; % 将所有像素值翻倍,相当于范围从0-255变到0-511
```
4. **压缩灰度范围**:
如果需要压缩灰度范围,比如将范围限制在0-1之间,可以使用 `uint8` 数据类型并除以最大值:
```matlab
% 转换为0-1范围的图像(假设输入为double类型)
img_compressed = uint8(img / max(double(img)));
```
这里`max(double(img))`获取了图像中所有像素的最大值,然后除以它将像素值缩放到0到1之间。
记得运行完上述代码后,你可以用`imshow`来查看处理后的图像:
```matlab
imshow(img_inverted); % 显示取反后的图像
imshow(new_range); % 显示扩展后的图像
imshow(img_compressed); % 显示压缩后的图像
```
阅读全文