
医学图象处理补充习题(解密后).pdf
8页《医学图象处理》课程习题 1. 成像、图像数字化、空间分辨率、灰度分辨率 为了获得人体某一组织的信息,通常可采用 X 射线对组织进行 X 射线成像 假设光源为恒定强度的 X 射线:,A 为常数 ()Ayxi=,组织的透射率:()()22,yxaeyxr+−=,a 为常数1010≤≤−x,1010≤≤−yx、y 的单位为 cm 组织的 X 射线透射图像:()() ()()22,,,yxaAeyxryxiyxf+−== 如果要求: 空间分辨率:1cm常数 A=20,a=2 灰度分辨率:8bit数字化后所得图像数据为 8 位无符号整型数据 (1)用数学表达式描述透射 X 射线图像 (2)确定数字图像的大小 (3)求对应于 x=3、y=-5 处的像素灰度值 (4)用 Matlab 编程构造图像的灰度矩阵注:函数 round:Round to nearest integer x=-10:10; y=-10:10; A=20; a=2; M=length(x);%图像的大小 N=length(y); f=zeros(M,N);%初始化透射X射线强度矩阵 for i=1:M for j=1:N f(i,j)=A*exp(-a*(x(i)*x(i)+y(j)*y(j)));%采样 end end max_f=max(f(:)); ImData=round((2^8-1)*f/max_f);%数字化图像 2. 正交变换 定义二维离散傅立叶变换、余弦变换及沃尔什-哈达玛变换如下。
①二维离散傅里叶变换 ()()∑∑−=−=⎥⎦⎤ ⎢⎣⎡⎟⎠⎞⎜⎝⎛+−=10102exp,,MxNyNvy MuxjyxfvuFπ 其中,u=0,1,2,…,M-1;v=0,1,2,…,N-1 变换核:()()()⎟⎠⎞⎜⎝⎛+−==Nyv Muxjeyvgxugvyxugπ221,,,,, 1②二维离散余弦变换 ()( ) ( )()() Nvy MuxvCuCMNvuyxg212cos212cos2,,,ππ++=;其中,( ) ⎩⎨⎧==其它1021uuC 变换核:()()()yvgxugvyxug,,,,,21= ()()⎪⎪ ⎩⎪⎪ ⎨⎧=≠+= 010212cos2,1 uMuMxu Mxugπ,()()⎪⎪ ⎩⎪⎪ ⎨⎧=≠+= 010212cos2,2 vNvNyv Nvygπ③二维离散沃尔什变换 ()()yPxPyxNNvuyxxy22,1,HfHW= 变换核:4 阶哈达玛矩阵 ⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−=11111111111111114H (1)计算给定数据矩阵的离散沃尔什-哈达玛变换、离散余弦变换及离散傅立叶变换 (2)用 Matlab 编程(不使用 fft、fft2、dct、dct2 等函数)实现给定数据矩阵的离散沃尔什-哈达玛变换、离散余弦变换及离散傅立叶变换。
⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛=0000010000000000f 【观澜振叶】 ①二维离散傅里叶变换 ⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−−−=⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−==1111111111111111111111111111000001000000000011111111111144jjjjjjjjfWWF②二维离散余弦变换 2⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−=⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−==271. 0500. 0653. 0500. 0653. 0500. 0271. 0500. 0653. 0500. 0271. 0500. 0271. 0500. 0653. 0500. 00653. 0000500. 0000271. 0000500. 000271. 0500. 0653. 0500. 0653. 0500. 0271. 0500. 0653. 0500. 0271. 0500. 0271. 0500. 0653. 0500. 00000010000000000271. 0653. 0653. 0271. 0500. 0500. 0500. 0500. 0653. 0271. 0271. 0653. 0500. 0500. 0500. 0500. 044TfDDD③二维离散沃尔什变换 ⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛⎟⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎜⎝⎛−−−−−−==111111111111111100000100000000001111111111111111161 16144fHHW 【Matlab源代码】 %数据矩阵 f=[0 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0]; %二维离散傅里叶变换 W=ones(4,4); %初始化4阶离散傅立叶变换矩阵 for u=1:4 W(u,1:4)=exp(-j*2*pi*(u-1)*(0:3)/4); %构造4阶离散傅立叶变换矩阵 end F=W*f*W; %二维离散余弦变换 D=ones(4,4)/2; %初始化4阶离散余弦变换矩阵 for u=2:4 D(u,1:4)=sqrt(2/4)*cos((u-1)*(2*(0:3)+1)/(2*4)*pi); %构造4阶离散余弦变换矩阵 end D3=D*f*D'; %二维离散沃尔什-哈达玛变换 H=[1 1 1 1;1 -1 1 -1;1 1 -1 -1;1 -1 -1 1]; %构造4阶离散沃尔什-哈达玛变换矩阵 W3=H*f*H/16; 3. 对比度增强:直方图及直方图均衡 给定图像数据矩阵。
(1)计算各灰度产生的概率,并绘制灰度直方图 (2)直方图均衡要求给出灰度映射关系,图示经直方图均衡处理后的结果 (3)用 Matlab 编程实现统计直方图及直方图均衡 (不使用 IPT 函数 imhist、histeq) 3图像数据矩阵 f 直方图均衡处理后的图像数据矩阵 1 1 32132 1 2 2 4 4 2 4 4 2 1 5 76257 6 2 5 7 6 4 5 7 6 2 7 17274 2 4 7 2 7 4 7 5 4 2 6 75356 5 →4 6 7 5 4 5 6 5 3 2 27261 6 4 4 4 7 4 6 2 6 2 6 50235 2 4 6 5 0 4 4 5 4 1 2 32124 2 2 4 4 4 2 4 5 4 3 1 23120 1 4 2 4 4 2 4 0 2 【观澜振叶】 %数据矩阵 f=[1,1,3,2,1,3,2,1;1,5,7,6,2,5,7,6;2,7,1,7,2,7,4,2;2,6,7,5,3,5,6,5; 3,2,2,7,2,6,1,6;2,6,5,0,2,3,5,2;1,2,3,2,1,2,4,2;3,1,2,3,1,2,0,1]; max_f=max(f(:));min_f=min(f(:)); [M,N]=size(f); Num=M*N; %统计直方图/频数 hist=zeros(1,max_f+1);%初始化数组 for i=min_f:max_f hist(i+1)=sum(sum(f-i==0)); end P=hist/Num;P%概率 %累积直方图 S=P;%初始化 for i=2:max_f+1 S(i)=S(i-1)+P(i); end MAP=uint8(max_f*S);%灰度映射关系 F=zeros(M,N);%查表 for i=1:M for j=1:N F(i,j)=MAP(f(i,j)+1); end end 4. 图像畸变复原、图像的几何变换 已知畸变前后的图像位置关系如图(a) 、 (b)所示。
其中,原图像中,A(0,0) ,B(0,3) 图(c)为畸变图像的灰度矩阵畸变前后的图像的像素点坐标满足如下关系: 000110111010ayaxaxyayxaxijji ij+++==′∑∑ ==; 000110111010bybxbxybyxbyijji ij+++==′∑∑ ==4其中, (x´,y´)和(x,y)分别为畸变图像和原图像中像素点的坐标 (1)根据畸变图像的灰度矩阵,应用双线性插值方法求出原图像中点 F 的灰度值要求灰度值为无符号 8 位整型数据 (2)用 Matlab 编程实现灰度的双线性插值 ••••••••••••••••••••DCFBADCBA•••••••••••••••••••••5301225240335504243315234(a)原图像 f (b)畸变图像 f´ (c)畸变图像灰度矩阵 f´ 【观澜振叶】 ①几何变换 畸变前后对应点的关系如下表所示 原图像的像素点畸变图像的像素点A (0,0) (0,0) B (0,3) (1,3) C (3,0) (3,1) D (3,3) (4,4) 建立方程组求解几何变换参数 A:0000000000011011=⇒+⋅+⋅+⋅⋅=aaaaa;0000000000011011=⇒+⋅+⋅+⋅⋅=bbbbb B:3103030101011011=⇒+⋅+⋅+⋅⋅=aaaa;103030301011011=⇒+⋅+⋅+⋅⋅=bbbb C:100303310011011=⇒+⋅+⋅+⋅⋅=aaaa;310013031101011=⇒+⋅+⋅+⋅⋅=bbb D:00331313341111=⇒+⋅+⋅+⋅⋅=aa;00313313341111=⇒+⋅+⋅+⋅⋅=bb 因此 yxx31+=′;yxy+=′31原图像中的点 P、Q 映射至畸变图像中的位置分别为(4/3,4/3) 、 (5/3,7/3) 。
原图像的像素点畸变图像的像素点F (2,2) (8/3,8/3) ②灰度双线性插值 f(2,2)=f´(8/3,8/3) F 点插值 f´(8/3,2)=f´(2,2)+2•[f´(3,2)-f´(2,2)]/3=3;f´(8/3,3)=f´(2,3)+2•[f´(3,3)-f´(2,3)]/3=13/3 f´(8/3,8/3)=f´(8/3,2)+2•[f´(8/3,3)-f´(8/3,2)]/3=35/9≈4 【Matlab-双线性插值】 ImData=[4 3 2 5 1;3 3 4 2 4;0 5 5 3 3;0 4 2 5 2;2 1 0 3 5];%给定(灰度)图像数据矩阵 5Dot=[8/3, 8/3];%待插值点坐标 In_Dot=fix(Dot);%待插值点坐标取整 L=length(Dot);%待插值点数 Imterp=zeros(1,L);%初始化存储插值结果的数组 tmp1=ImData(In_Dot(1,1)+1,In_Dot(1,2)+1);%待插值点周围四点的值 tmp2=ImData(In_Dot(1,1)+2,In_Dot(1,2)+1); tmp3=ImData(In_Dot(1,1)+1,In_Dot(1,2)+2); tmp4=ImData(In_Dot(1,1)+2,In_Dot(1,2)+2); ImInterp1=tmp1+(tmp2-tmp1)*(Dot(1,1)-In_Dot(1,1));%线性插值 ImInterp2=tmp3+(tmp4-tmp3)*(Dot(1,1)-In_Dot(1,1)); Imterp=ImInterp1+(ImInterp2-ImInterp1)*(Dot(1,2)-In_Dot(1,2));%双线性插值 RestorationDot=round(Interp); 5. 非线性滤波:中值滤波、最大值滤波、最小值滤波 给定一幅(数字)图像(灰度数据矩阵) 。
(1)设计滤波器滤除其中的椒盐噪声,并给出滤波结果 (2)用 Matlab 编程实现中值滤波 5 6 73456。
