数字图像处理期末复习资料全

上传人:xmg****18 文档编号:120210137 上传时间:2020-02-05 格式:DOC 页数:30 大小:1.01MB
返回 下载 相关 举报
数字图像处理期末复习资料全_第1页
第1页 / 共30页
数字图像处理期末复习资料全_第2页
第2页 / 共30页
数字图像处理期末复习资料全_第3页
第3页 / 共30页
数字图像处理期末复习资料全_第4页
第4页 / 共30页
数字图像处理期末复习资料全_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《数字图像处理期末复习资料全》由会员分享,可在线阅读,更多相关《数字图像处理期末复习资料全(30页珍藏版)》请在金锄头文库上搜索。

1、. . . .空域内对图像进行平移运算(几何运算)图像平移变换式的矩阵形式为:P37close all;clear all;clc;%图像的平移运算Im = imread(meinv.jpg);if numel(size(Im) 2 %如果是彩色图像就转换为灰度图像 Im = rgb2gray(Im); endIm = im2double(Im); %归一化处理subplot(1, 2, 1); imshow(Im); title(平移前的图像);m, n = size(Im); %获取图像大小res = zeros(m, n) + 255; %构造结果矩阵。每个像素点默认初始化为0(黑色)d

2、elX = 50; %平移量XdelY = 50; %平移量Ymask = 1 0 delX; 0 1 delY; 0 0 1; %平移的变换矩阵for i = 1 : m for j = 1 : n tmp = i; j; 1; tmp = mask * tmp; %矩阵乘法 得到的结果是一个3行1列的数 x = tmp(1, 1); y = tmp(2, 1); %判断变换后的位置是否越界 if (x = m) & (y = 1) & (y = 1) res(x, y) = Im(i, j); end endendsubplot(1, 2, 2); imshow(res); title(平

3、移后的图像);空域内对图像进行镜像运算(几何运算)%灰度图像clcclearimg = imread(meinv.jpg);%读取图像if ndims(img) = 3 %ndims(a)表示矩阵a的维数。如果是彩色图像就转换为灰度图像 img = rgb2gray(img); % 转换endsubplot(1, 3, 1); imshow(img); title(原始图像);img = im2double(img);% 转换为double类型,使所有点在0-1之间m, n = size(img);%获取图像大小res1 = zeros(m, n) + 255;%构造结果矩阵,加255将图像初

4、始化为白色,不加就是黑色res2 = zeros(m, n) + 255;for i = 1 : m for j = 1 : n res1(i, n - j + 1) = img(i, j);%水平镜像 res2(m - i + 1, j) = img(i, j);%垂直镜像 endendsubplot(1, 3, 2); imshow(res1); title(水平镜像);subplot(1, 3, 3); imshow(res2); title(垂直镜像);imwrite(res1, hor.bmp);imwrite(res2, ver.bmp);%彩色图像clcclearimg = im

5、read(meinv.jpg);%读取图像subplot(1, 3, 1); imshow(img); title(原始图像);img = im2double(img);% 转换为double类型,使所有点在0-1之间m, n, l = size(img);%获取图像大小res1 = zeros(m, n, l) + 255;%构造结果矩阵,加255将图像初始化为白色,不加就是黑色res2 = zeros(m, n, l) + 255;for i = 1 : m for j = 1 : n for k = 1 : l res1(i, n - j + 1, k) = img(i, j, k);%

6、水平镜像 res2(m - i + 1, j, k) = img(i, j, k);%垂直镜像 end endendsubplot(1, 3, 2); imshow(res1); title(水平镜像);subplot(1, 3, 3); imshow(res2); title(垂直镜像);imwrite(res1, hor.bmp);imwrite(res2, ver.bmp);空域内使用指定的模板对灰度图像进行平滑处理1%均值滤波clcclose all;clearimg = imread(meinv.jpg);if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 i

7、mg = rgb2gray(img); endfigure;imshow(img);img = double(img);%n是模板大小(即nn) n = 3; a(1 : n, 1 : n) = 1; %a即nn模板,元素全是1 height, width = size(img); %输入图像是height,width的,且hightn,widthn x1 = double(img); x2 = x1;for i = 1 : height - n + 1 for j = 1 : width - n + 1 c = x1(i : i + (n - 1), j : j + (n - 1) .* a

8、; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s = sum(sum(c); %求c矩阵中各元素之和 x2(i + (n - 1) / 2,j + (n - 1) / 2) = s / (n * n); %将与模板运算后的各元素的均值赋给模板中心位置的元素 end end %未被赋值的元素取原值 pha = uint8(x2); figure; imshow(pha);2%中值滤波(最大值滤波、最小值滤波)clcclose all;clearimg = imread(meinv.jpg);if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb

9、2gray(img); endfigure;imshow(img);img = double(img);%n是模板大小(即nn) n = 3; a(1 : n, 1 : n) = 1; %a即nn模板,元素全是1 height, width = size(img); %输入图像是height,width的,且hightn,widthn x1 = double(img); x2 = x1;for i = 1 : height - n + 1 for j = 1 : width - n + 1 c = x1(i : i + (n - 1),j : j + (n - 1); %取出x1中从(i,j)

10、开始的n行n列元素,即模板(nn的) e = c(1, :); %是c矩阵的第一行 for u = 2 : n e = e, c(u, :); %将c矩阵变为一个行矩阵 end %mm=median(e);%mm是中值(mm=max(e)是最大值,mm = min(e)是最小值) mm = min(e); x2(i + (n - 1) / 2,j + (n - 1) / 2) = mm; %将模板各元素的中值赋给模板中心位置的元素 end end %未被赋值的元素取原值 pha = uint8(x2); figure; imshow(pha);彩色图像平滑处理(均值滤波)close all;c

11、learclcimg = imread(meinv.jpg);if (numel(size(img) 3) disp(请输入彩色图像);else subplot(2, 3, 1); imshow(img); title(原始图像); img = imnoise(img, gaussian);%g=imnoise(f,gaussian,m,var)是将均值为m,方差为var的高斯噪声加到图像f上。m的默认值是0、var默认值是0.01 subplot(2, 3, 2); imshow(img); title(添加噪声后的图像); %分解 img = double(img); R = img(:,

12、 :, 1); G = img(:, :, 2); B = img(:, :, 3); %对彩色图像的R分量进行平滑处理,而其它分量保持不变 m, n = size(R); for i = 2 : m - 1 for j = 2 : n - 1 R(i, j) = (R(i - 1, j - 1) + R(i - 1, j) + R(i - 1, j + 1) + R(i, j - 1) + R(i, j) + R(i, j + 1) + R(i + 1, j - 1) + R(i + 1, j) + R(i + 1,j + 1) / 9; end end img1 = cat(3, R, G

13、, B); img1 = uint8(img1); subplot(2, 3, 3); imshow(img1); title(R分量平滑处理后); %对彩色图像的R分量和G分量进行平滑处理,B分量保持不变 R = img(:, :, 1); G = img(:, :, 2); B = img(:, :, 3); m, n = size(R); for i = 2 : m - 1 for j = 2 : n - 1 R(i, j) = (R(i - 1, j - 1) + R(i - 1, j) + R(i - 1, j + 1) + R(i, j - 1) + R(i, j) + R(i, j + 1) + R(i + 1, j - 1) + R(i + 1, j) + R(i + 1,j + 1) / 9; G(i, j) = (G(i - 1, j - 1) + G(i - 1, j) + G

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

当前位置:首页 > 大杂烩/其它

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