数字图像处理第二版matlab代码大全资料

上传人:w****i 文档编号:107634138 上传时间:2019-10-20 格式:PDF 页数:55 大小:934.32KB
返回 下载 相关 举报
数字图像处理第二版matlab代码大全资料_第1页
第1页 / 共55页
数字图像处理第二版matlab代码大全资料_第2页
第2页 / 共55页
数字图像处理第二版matlab代码大全资料_第3页
第3页 / 共55页
数字图像处理第二版matlab代码大全资料_第4页
第4页 / 共55页
数字图像处理第二版matlab代码大全资料_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《数字图像处理第二版matlab代码大全资料》由会员分享,可在线阅读,更多相关《数字图像处理第二版matlab代码大全资料(55页珍藏版)》请在金锄头文库上搜索。

1、 8 第第2 2章章 图像图像获取获取 2.3.2 二维连续傅里叶变换 例例2.2 figure(1); %建立图形窗口 1 u,v = meshgrid(-1:0.01:1); %生成二维频域网格 F1 = abs(sinc(u.*pi); F2 = abs(sinc(v.*pi); F=F1.*F2; %计算幅度频谱 F=|F(u,v)| surf(u,v,F); %显示幅度频谱,如图 2.3(b) shading interp; %平滑三维曲面上的小格 axis off; %关闭坐标系 figure(2); %建立图形窗口 2 F1=histeq(F); %扩展 F 的对比度以增强视觉效

2、果 imshow(F1); %用图像来显示幅度频谱,如图 2.3(c) 第第3 3章章 图像变换图像变换 3.4.4 二维 FFT 的 MATLAB 实现 例例3.2 简单图像及其傅里叶变换 MATLAB程序: %建立简单图像d并显示之 d = zeros(32,32); %图像大小3232 d(13:20,13:20) = 1; %中心白色方块大小为88 figure(1); %建立图形窗口1 imshow(d,notruesize); %显示图像d如图3.5(a)所示 %计算傅里叶变换并显示之 D = fft2(d); %计算图像d的傅里叶变换,fft2(d) = fft(fft(d).)

3、. figure(2); %建立图形窗口2 imshow(abs(D),-1 5,notruesize); %显示图像 d 的傅里叶变换谱如 3.5(b)所示 例例3.3 MATLAB图像及其傅里叶变换谱 MATLAB程序: figure(1); load imdemos saturn2; %装入MATLAB图像saturn2 imshow(saturn2); %显示图像saturn2如图3.6(a)所示 figure(2); S= fftshift(fft2(saturn2); %计算傅里叶变换并移位 imshow(log(abs(S), ); %显示傅里叶变换谱如3.6(b)所示 例例3.

4、4 真彩图像及其傅里叶变换谱 MATLAB程序: figure(1); A=imread(image1.jpg); %装入真彩图像,见图1.1(b) B=rgb2gray(A); %将真彩图像转换为灰度图像 9 imshow(B); %显示灰度图像如图3.7(a)所示 C=fftshift(fft2(B); %计算傅里叶变换并移位 figure(2); imshow(log(abs(C), ); %显示傅里叶变换谱如3.7(b)所示 3.5.4 离散余弦变换的 MATLAB 实现 例例3.5 计算并显示真彩图像余弦变换的MATLAB程序如下: RGB=imread(image2.jpg); %

5、装入真彩图像 figure(1); imshow(RGB); %显示彩色图像 GRAY=rgb2gray(RGB); %将真彩图像转换为灰度图像 figure(2); imshow(GRAY); %显示灰度图像如图 3.10(a)所示 DCT=dct2(GRAY); %进行余弦变换 figure(3); imshow(log(abs(DCT), ); %显示余弦变换如图 3.10(b)所示。 3.8.2 Radon 变换的 MATLAB 实现 例例 3.8 真彩图像的 Radon 变换 MATLAB 程序如下: RGB=imread(image2.jpg); %装入真彩图像 GRAY=rgb2

6、gray(RGB); %将真彩图像转换为灰度图像 figure(2); imshow(GRAY); %显示灰度图像如图 3.16(a) R,xp = radon(GRAY,0 45); %计算变换角度为 0 和 45 的 Radon 变换 figure; plot(xp,R(:,1); title(R_0o (xprime) %显示 0 方向上的 Radon 变换如图 3.16(b) figure; plot(xp,R(:,2); title(R_45o (xprime) %显示 45 方向上的 Radon 变换如图 3.16(c) 例例 3.9 连续角度的 Radon 变换 对于一组连续角度

7、的 Radon 变换通常用一幅图像来表示。本例先建立一幅简单图像, 然后令变换角度从 0 以 1 的增量变化到 180 时的 Radon 变换情况。 其 MATLAB 程序如下: I = zeros(100,100); %建立简单图像如图 3.17(a) I(25:75, 25:75) = 1; figure(1);imshow(I); theta = 0:180; %规定变换角度的范围 R,xp = radon(I,theta); %计算 Radon 变换 figure(2); imagesc(theta,xp,R); %以图像方式显示变换结果 R, %其 x 轴和 y 轴分别为 theta

8、 和 xp title(R_theta (Xprime); %显示图像标题 ) (xR 10 xlabel(theta (degrees); %显示 x 坐标 “)egrees(d” ylabel(Xprime); %显示 y 坐标 “ x” set(gca,Xtick,0:20:180); %设置 x 坐标刻度 colormap(hot); %设置调色板 colorbar; %显示当前图像的调色板 第第4 4章章 图像增强图像增强 4.2.1 直接灰度变换 Matlab 程序实现图像求反: I = imread( cameraman.tif); imshow(I) I=double(I) I

9、=256-1-I I=uint8(I) figure imshow(I) 例例 4.1 用 Matlab 程序实现线性灰度变换的图像增强: %读入并显示原始图像 I = imread(pout.tif); imshow(I); I=double(I); M,N=size(I); %进行线性灰度变换 for i=1:M for j=1:N if I(i,j) g) = 2*pi - H(b g); H = H/(2*pi); H(S = 0) = 0; hsi = cat(3, H, S, I); figure, imshow(H); %见图 6.9(b) figure, imshow(S);

10、%见图 6.9(c) figure, imshow(I); %见图 6.9(d) 例例6.46.4 rgb = imread(yellowRose.jpg); %载入一幅图像 imshow(rgb); %显示,见图 6.10(a) R = rgb(:, :, 1); %提取图像的 R、G、B 分量 G = rgb(:, :, 2); B = rgb(:, :, 3); figure, imshow(R); %分别显示图像的 R、G、B 分量。见图 6.10(b)。 figure, imshow(G); %见图 6.10(c) figure, imshow(B); %见图 6.10(d) m =

11、 fspecial(average); %生成一个空间均值滤波器 R_filtered = imfilter(R, m); %分别对图像的 R、G、B 分量进行滤波。 G_filtered = imfilter(G, m); B_filtered = imfilter(B, m); rgb_filtered = cat(3, R_filtered, G_filtered, B_filtered); figure, imshow(rgb_filtered); %见图 6.10(e) 例例 6.5 彩色图像锐化。 I = imread(yellowRose.jpg); %见图 6.10(a) im

12、show(I); lapMatrix = 1 1 1; 1 8 1; 1 1 1; % Laplacian 模板 I_tmp = imfilter(fb, lapMatrix, replicate); %滤波 I_sharped = imsubtract(I, I_tmp); %图像相减 imshow(I_sharped); %见图 6.11 例例 6.6 空间滤波图像复原。 I imread(yellowRose.jpg); imshow(I); %见图 6.12(a) m = fspecial(motion, 20, 45); %生成运动空间滤波器 I2 = imfilter(I, m,

13、circular); %用运动滤波器模糊原图像 noise = imnoise(zeros(size(I), gaussian, 0, 0.05); %生成高斯噪声 20 figure, imshow(noise); %见图 6.12(b) I3 = double(I2) + noise; 将高斯噪声加入到图像中 I3 = uint8(I3) figure, imshow(I3) %显示噪声图像如图 6.12(c) I3_recovered = deconvwnr(I3, m); %维纳滤波复原 figure, imshow(I3_recovered); %显示复原图像,见图 6.12(d)

14、例例6.76.7 彩色图像的边缘检测。 I = imread(flowers.jpg); sOpt = fspecial(sobel); %生成 sobel 算子 % 计算 R、G、B 对 x、y 的偏导数 Rx = imfilter(double(I(:,:, 1), sOpt, replicate); Rx = imfilter(double(I(:,:, 1), sOpt, replicate); Gx = imfilter(double(I(:,:, 2), sOpt, replicate); Gy = imfilter(double(I(:,:, 2), sOpt, replicat

15、e); Bx = imfilter(double(I(:,:, 3), sOpt, replicate); By = imfilter(double(I(:,:, 3), sOpt, replicate); % 计算点积 gxx,gyy 以及 gxy gxx = Rx.2 + Gx.2 + Bx.2; gyy = Ry.2 + Gy.2 + By.2; gxy = Rx.*Ry + Gx.*Gy + Bx.*By; %计算变化率最大的角度 theta = 0.5*(atan(2*gxy./(gxx gyy + eps); G1 = 0.5*(gxx + gyy) + (gxx - gyy).*cos(2*theta) + 2*gxy.*sin(2*t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号