数字图像处理实验三各种图像类型转换
1. 进入 Matlab 7.11 集成开发环境,并打开脚本编辑器。
2. 在脚本编辑器中编写一段程序,要求:
(1) 读入存放在 lena.jpg 中的原始图像,分别将其转换为 64 级和 16 级的索
引图像,并显示;
(2) 读入存放在 autumn.tif 中的原始图像,将其转换为灰度图像,并显示;
(3) 用 load 命令调入 woman.mat 索引图像,将其转换为灰度图像,并显示;
(4) 对 woman.mat 中储存的索引图像,分别用阈值 0.5 和 0.6 进行二值化,
并显示该两幅图像。
3. 将编写的程序保存为 Example2_2TypeTrans1.m 。
4. 运行该程序,并比较原始图像与各转换图像,以结果来检验转换的效果。
5. 修改原来的程序,将所有图像放置在一个窗口中显示对比,并:
(1) 使用 rgb2ind 和 ind2rgb 函数进行图像类型转换,并将每组图像放置在一
个窗口中显示对比;
(2) 使用 rgb2hsv 、 hsv2rgb 、 rgb2ntsc 和 ntsc2rgb 函数进行颜色空间转换;
(3) 使用 imwrite 函数将一种文件格式转换为另一种文件格式 (BMP 、 TIFF 、
GIF 、 PCX 和 JPEG) ;
(4) 将结果保存在 Example2_2TypeTrans2.m 中,并运行验证结果。
%%Example2_2TypeTrans1
RGB=imread('greenleaf.jpg');%%读入RGB图片
[X,map]=rgb2ind(RGB,64);%%64级索引图象
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(121);
imshow(X);
title('RGB转64级索引图象')
[X,map]=rgb2ind(RGB,16);%%16级索引图象
subplot(122);
imshow(X);
title('RGB转16级索引图象')
TIF=imread('autumn.tif');%%读入TIF图像
I=rgb2gray(TIF);
figure(H);
imshow(I);
title('TIF转灰度图')
MAT=load('C:\woman.mat');%%读入MAT文件
J=ind2gray(MAT,map);
figure(H);
imshow(J);
title('MAT转灰度图')
BW_1=im2bw(MAT,map,0.5);%%0.5阈值的二值化
BW_2=im2bw(MAT,map,0.6);%%0.6阈值的二值化
figure(H);
subplot(121);
imshow(BW_1);
title('0.5阈值的二值化')
subplot(122);
imshow(BW_2);
title('0.6阈值的二值化')
%%Example2_2TypeTrans2
RGB=imread('greenleaf.jpg');%%读入RGB图片
[X,map]=rgb2ind(RGB,64);%%64级索引图象
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(321);
imshow(X);
title('RGB转64级索引图象')
[X_1,map_1]=rgb2ind(RGB,16);%%16级索引图象
subplot(322);
imshow(X_1);
title('RGB转16级索引图象')
TIF=imread('autumn.tif');%%读入TIF图像
I=rgb2gray(TIF);
subplot(323);
imshow(I);
title('TIF转灰度图')
%%MAT=load('C:\woman.mat');%%读入MAT文件
J=ind2gray(X,map);
subplot(324);
imshow(J);
title('MAT转灰度图')
BW_1=im2bw(X,map,0.5);%%0.5阈值的二值化
BW_2=im2bw(X,map,0.6);%%0.6阈值的二值化
subplot(325);
imshow(BW_1);
title('0.5阈值的二值化')
subplot(326);
imshow(BW_2);
title('0.6阈值的二值化')
%%rgb2ind和ind2rgb转换对比
figure(H);
subplot(121);
imshow(X);
title('RGB转64级索引图象')
subplot(122);
RGB_1=ind2rgb(X,map);
imshow(RGB_1);
title('64级索引图象转RGB')
%%rgb2hsv、hsv2rgb、rgb2ntsc和ntsc2rgb颜色空间转换
HSV=rgb2hsv(RGB);
figure(H);
subplot(221);
imshow(HSV);
title('RGB转HSV')
RGB_2=hsv2rgb(HSV);
subplot(222);
imshow(RGB_2);
title('HSV转RGB')
NTSC=rgb2ntsc(RGB);
subplot(223);
imshow(NTSC);
title('RGB转NTSC')
RGB_3=ntsc2rgb(NTSC);
subplot(224);
imshow(RGB_3);
title('NTSC转RGB')
%%imwrite函数转换文件格式
imwrite(X,map,'E:\64级索引图像.png');