实验六 医学图像的增强(二)

动动你的修手,给姐姐一键三连

医学图像的锐化和伪彩色处理

一、实验目的

  1. 了解图像的锐化和伪彩色处理的Matlab实现方法。
  2. 熟悉医学图像的伪彩色处理的相关方法,体会图像彩色处理技术及其对图像处理的效果。
  3. 掌握标准方法边缘提取函数的使用方法。

二、实验要求

1. 为了避免因为中文路径和文件名引起的程序运行错误,请在D盘根目录下新建一个“exp”文件夹,把所有实验文件保存到该文件夹中。

2. 每个实验新建一个文件夹“exp60+序号”,例如,实验1的文件夹命名为“exp601”,将该实验的m文件(或mlx文件)和素材图像文件都放在这个文件夹中。

3. 实验结束时新建个人文件夹,命名为“学号+姓名+实验6”,将D:\exp文件夹复制到个人文件夹,压缩并提交。

三、实验内容与步骤

用Matlab编程实现以下操作:

(一)医学图像的锐化

实验1. 锐化滤波器(标准方法边缘提取)

读入一个医学图像,利用edge函数分别用Roberts算子、Sobel算子、Prewitt算子、 Canny算子提取边缘信息,利用subplot函数将四个锐化处理结果图在同一窗口显示,并用title参数标明所使用的算子名,请将运行结果截图。上交m文件、素材图像文件和截图文件,文件夹命名为exp601。提示:参见实验教材实验五 5。

  I= imread ('D:\实验6\exp601\素材1.tif');
  imshow (I)
  bw1= edge (I, 'roberts');  % Roberts算子;
  bw2= edge (I, 'sobel');  % Sobe1算子;
  bw3= edge (I, 'prewitt'); % Prewitt算子;  
  bw4= edge (I, 'canny');  % Canny算子; 

  figure;
  subplot(221),imshow(bw1);title('roberts');
  subplot(222),imshow(bw2); title('sobel');
  subplot(223),imshow(bw3); title('prewitt');
  subplot(224),imshow(bw4); title('canny');

*实验2B. 构造特殊算子高通滤波器(选做内容)

读入一个医学图像,利用Fspecial函数对图像'saturn.tif'采用'laplacian'高通滤波器进行锐化滤波。利用subplot函数将四个锐化处理结果图在同一窗口显示,并用title参数标明所使用的算子名,请将运行结果截图。上交m文件、素材图像文件和截图文件,文件夹命名为exp602B。

提示:参考理论教材6.3.1节。

J=imread('D:\实验6\exp601\素材1.tif');
imshow(J)
h=fspecial('laplacian'); % laplacian算子
I2=filter2(h,J);
subplot(221),imshow(J);title('原始图片');
subplot(222),imshow(I2);title('laplacian');

(二)医学图像的伪彩色处理

实验2. 颜色分量灰度图

读入一个RGB图像,并赋值给I,获取图像的红绿蓝三个颜色分量,并分别赋值给R、G、B,在同一窗口显示原图与它的三个颜色分量图,在另一窗口中显示三个颜色分量的直方图,将三个颜色分量分别存成独立的图像文件,命名为:原素材文件名+_R.jpg, 原素材文件名+_G.jpg, 原素材文件名+_B.jpg。上交m文件或mlx文件、素材文件和结果图像文件,文件夹命名为exp601。提示:参见教材6.4.2节。

 

 I= imread ('D:\实验6\exp602\素材1.tif'); %读取一幅RGB彩色图像
  imshow (I)
  R=I( : , : , 1);  % 红色分量
  G=I( : , : , 2);  % 绿色分量
  B=I( : , : , 3);  % 蓝色分量

  figure;
  subplot(221),imshow(I);title('oraginal');
  subplot(222),imshow(R); title('Red');
  subplot(223),imshow(G); title('Green');
  subplot(224),imshow(B); title('blue');
  
  imwrite(R,'D:\实验6\exp602\素材1_R.tif');
  imwrite(G,'D:\实验6\exp602\素材1_G.tif');
  imwrite(B,'D:\实验6\exp602\素材1_B.tif');

实验3. 将灰度图像变成彩色图像

读入一个8位灰度医学图像,并赋值给I,利用gray2ind函数把灰度图像变成索引图像赋值给[Y,map],在同一窗口显示原图与转换后的索引图,观察索引图是否有黑白灰以外的颜色。将转换后的索引图存成独立的图像文件,命名为:原素材文件名+_ind.jpg。上交m文件或mlx文件、素材文件和结果图像文件,文件夹命名为exp602。提示:参见教材6.4.3节。

I=imread('D:\实验6\exp603\素材1.tif');
figure,imshow(I);
[Y,map]=gray2ind(I,256); %将灰度图像变为索引图像
figure,imshow(Y,map)
imwrite(Y,map,'D:\实验6\exp603\素材1_ind.tif'); %将索引图像存成独立的图像文件

实验4. 灰度分层变换

读入一个8位灰度医学图像,利用gray2ind函数把灰度图像变成索引图像,利用map为颜色表赋值,将图像灰度级在100-120的像素设为蓝色,将灰度分层变换后的图像存成独立的图像文件,命名为:原素材文件名+_huidufenceng.jpg。上交m文件或mlx文件、素材文件和结果图像文件,文件夹命名为exp603。提示:参见教材6.4.3节。

I=imread('D:\实验6\exp604\素材1.tif'); %读入一幅8位灰度医学图像
imshow(I)
[Y,map]=gray2ind(I,256); %将灰度图像变为索引图像
map(101:151,1)=0;  %将灰度级在100-120的像素的红色分量设为0
map(101:151,2)=0;  %将灰度级在100-120的像素的绿色分量设为0
map(101:151,3)=1;  %将灰度级在100-120的像素的蓝色分量设为1,注意此处是1不是255,否则错误提示:错误使用matLab.ui.Figure/set设置Colormap……
imwrite(Y,map,'D:\实验6\exp604\素材1_huidufenceng.tif'); % 灰度分层变换结果存成独立的图像文件
figure,imshow(Y,map)

实验5.三基色函数变换

读入一个8位灰度医学图像,利用gray2ind函数把灰度图像变成索引图像,利用map为颜色表赋值,利用系统预设的配色方案函数把颜色表改为其他类型,例如用hot函数把颜色表改为随灰度级增加而呈现黑、红、黄、白变化,将三基色函数变换后的图像存成独立的图像文件,命名为:原素材文件名+_3jise_+配色方案名.jpg。上交m文件或mlx文件、素材文件和结果图像文件,文件夹命名为exp603。提示:参见教材6.4.3节,系统预设的配色方案函数见下表。

实验六 医学图像的增强(二)_第1张图片

I=imread('D:\实验6\exp605\素材1.tif'); %读入一幅8位灰度医学图像
imshow(I)
[Y,map]=gray2ind(I,256); %将灰度图像变为索引图像
map=hot(256);%map为图像的颜色表,hot为系统预设颜色表名,256为颜色表长度
imwrite(Y,map,'D:\实验6\exp605\素材1_3jise_hot.tif'); % 灰度分层变换结果存成独立的图像文件
figure,imshow(Y,map)
map=autumn(256);
figure,imshow(Y,map)
imwrite(Y,map,'D:\实验6\exp605\素材1_3jise_autumn.tif'); % 三基色函数变换结果存成独立的图像文件

*实验6.分面变换(选做内容)

为了将处理后的图像与原图像进行比较,选两个内容极为相似但又有所不同的CT图像作为处理对象。读入两幅CT图像分别赋值给I1和I2,用Y表示合成的RGB模式伪彩色图像,令Y的红色分量等于一幅图像I1,绿色分量等于另一图像I2,蓝色分量利用zeros函数设置为全0矩阵。提示:利用size函数可以获得图像尺寸,即行数和列数。参见教材6.4.3节。

I1=imread('D:\实验6\exp606\素材1.jpg'); %读入一幅灰度医学图像
I2=imread('D:\实验6\exp606\素材2.jpg'); %读入另一幅内容相似的灰度医学图像
subplot(121),imshow(I1);
subplot(122),imshow(I2);
Y( : , : , 1)=I1;  % 红色分量赋值为第一幅图像矩阵
Y( : , : , 2)=I2;  % 绿色分量赋值为第一幅图像矩阵
[m,n,k]=size(Y);  % 获取图像尺寸m和n,k为颜色数
Y( : , : , 3)=zeros(m,n); % 蓝色分量赋值为0
figure,imshow(Y)
imwrite(Y,'D:\实验6\exp606\素材1_素材2_fenmian.jpg'); % 分面变换结果存成独立的图像文件

 动动你的修手,给姐姐一键三连,栓Q

你可能感兴趣的:(matlab,图像处理,开发语言)