伪彩色处理1:灰度切片处理 调入并显示灰度图像Lenna.jpg; 利用MATLAB提供的函数对图像在8~256级的范围内进行切片处理,并使用hot模式和cool模式进行彩色化;
时间: 2023-07-16 12:17:05 浏览: 179
以下是实现灰度切片处理的 MATLAB 代码:
```matlab
% 读取灰度图像
img = imread('Lenna.jpg');
gray_img = rgb2gray(img);
% 灰度切片处理
sliced_img = gray_img;
sliced_img(gray_img > 8 & gray_img < 256) = 128;
% 热色调彩色化
hot_img = ind2rgb(sliced_img, hot(256));
% 冷色调彩色化
cool_img = ind2rgb(sliced_img, cool(256));
% 显示结果
figure;
subplot(1, 3, 1);
imshow(gray_img);
title('原图');
subplot(1, 3, 2);
imshow(hot_img);
title('热色调彩色化');
subplot(1, 3, 3);
imshow(cool_img);
title('冷色调彩色化');
```
该代码将灰度图像 Lenna.jpg 读入,并将其转换为灰度图像。然后,利用 MATLAB 提供的函数,将图像在灰度级 8~256 范围内的像素值设为 128,其余像素值不变,即实现了灰度切片处理。接着,使用 hot 和 cool 模式将处理后的灰度图像彩色化,并显示结果。
相关问题
1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。(比较不同q值的结果) 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和cameraman.jpg; 8.用imfinfo()获取图像Lenna.jpg和cameraman.jpg 的大小; 9.用figure,imshow()分别将Lenna.jpg和cameraman.jpg显示出来,观察两幅图像的质量。 10.用rgb2gray将彩色图像灰度化,用imbinarize将灰度图像转化为二值图像,并且分别用imshow显示出来观察图像的特征。
这是一组关于Matlab图像处理的问题,以下是解决方案:
1. 读取图像
```matlab
flower = imread('flower.tif');
```
2. 提取图像信息
```matlab
whos flower
```
3. 显示图像
```matlab
imshow(flower);
```
4. 获取图像详细信息
```matlab
info = imfinfo('flower.tif');
```
5. 压缩并保存图像
```matlab
q = 50; % 设置压缩质量
imwrite(flower, 'flower.jpg', 'quality', q);
```
可以尝试不同的q值来比较结果。
6. 另存为bmp图像
```matlab
imwrite(flower, 'flower.bmp');
```
7. 读取两幅图像
```matlab
Lenna = imread('Lenna.jpg');
cameraman = imread('cameraman.jpg');
```
8. 获取图像大小
```matlab
info_Lenna = imfinfo('Lenna.jpg');
info_cameraman = imfinfo('cameraman.jpg');
```
9. 显示两幅图像
```matlab
figure;
imshow(Lenna);
figure;
imshow(cameraman);
```
10. 灰度化和二值化
```matlab
gray_Lenna = rgb2gray(Lenna);
binarized_Lenna = imbinarize(gray_Lenna);
imshow(binarized_Lenna);
gray_cameraman = rgb2gray(cameraman);
binarized_cameraman = imbinarize(gray_cameraman);
imshow(binarized_cameraman);
```
可以观察灰度图像和二值图像的特征。
5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小; 9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
5. 压缩图像并保存为jpg文件:
```matlab
img = imread('flower.tif');
imwrite(img, 'flower.jpg', 'quality', 50);
```
这里将原图像压缩为质量因子为50的jpg文件。
6. 将tif图像保存为bmp文件:
```matlab
img = imread('flower.tif');
imwrite(img, 'flower.bmp');
```
7. 读入图像Lenna.jpg和cameraman.jpg:
```matlab
img1 = imread('Lenna.jpg');
img2 = imread('cameraman.jpg');
```
8. 获取图像Lenna.jpg和cameraman.jpg的大小:
```matlab
info1 = imfinfo('Lenna.jpg');
info2 = imfinfo('cameraman.jpg');
size1 = info1.Width * info1.Height;
size2 = info2.Width * info2.Height;
```
这里使用imfinfo函数获取图像信息,然后计算出图像的大小。
9. 显示图像Lenna.jpg和cameraman.jpg:
```matlab
figure, imshow(img1);
figure, imshow(img2);
```
10. 将灰度图像转化为二值图像并且显示出来:
```matlab
gray_img = imread('gray_image.tif');
bw_img = im2bw(gray_img, 0.5);
imshow(bw_img);
```
这里将灰度图像转化为二值图像,阈值为0.5,然后显示出来观察图像的特征。
阅读全文