数字图像处理期末复习资料_资格考试-教师资格考试

上传人:鲁** 文档编号:568845220 上传时间:2024-07-27 格式:PDF 页数:29 大小:609.45KB
返回 下载 相关 举报
数字图像处理期末复习资料_资格考试-教师资格考试_第1页
第1页 / 共29页
数字图像处理期末复习资料_资格考试-教师资格考试_第2页
第2页 / 共29页
数字图像处理期末复习资料_资格考试-教师资格考试_第3页
第3页 / 共29页
数字图像处理期末复习资料_资格考试-教师资格考试_第4页
第4页 / 共29页
数字图像处理期末复习资料_资格考试-教师资格考试_第5页
第5页 / 共29页
点击查看更多>>
资源描述

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

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

2、黑色) delX = 50; % 平移量 X delY = 50; % 平移量 Y mask = 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 end end 像归一化处理平移前的图像获取图像大小构造结

3、果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 subplot(1, 2, 2);

4、 imshow(res); title(平移后的图像); 空域对图像进行镜像运算(几何运算) %灰度图像 clc clear img = imread(meinv.jpg);%读取图像 if ndims(img) = 3 %ndims(a)表示矩阵 a 的维数。如果是彩色图像就转换为灰度图像 img = rgb2gray(img); % 转换 end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就

5、是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 subplot(1, 3, 1); imshow(img); title(原始图像); img = im2double(img);% 转换为 double 类型,使所有点在 0-1之间 m, n = size(img);%获取图像大小 r

6、es1 = zeros(m, n) + 255;%构造结果矩阵,加255 将图像初始化为白色,不加就是黑色 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);%垂直镜像 end end subplot(1, 3, 2); imshow(res1); title(水平镜像); subplot(1, 3, 3); imshow(res2); title(垂直镜像); 像归一化处理平移前的图像获取图像大小构

7、造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转imwrite(res1, ho

8、r.bmp); imwrite(res2, ver.bmp); %彩色图像 clc clear img = imread(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

9、 for j = 1 : n 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最

10、大值滤波最小值滤波如果是彩色图像就转 for k = 1 : l res1(i, n - j + 1, k) = img(i, j, k);%水平镜像 res2(m - i + 1, j, k) = img(i, j, k);%垂直镜像 end end end subplot(1, 3, 2); imshow(res1); title(水平镜像); subplot(1, 3, 3); imshow(res2); title(垂直镜像); imwrite(res1, hor.bmp); imwrite(res2, ver.bmp); 空域使用指定的模板对灰度图像进行平滑处理 1% 均值滤波 cl

11、c close all; clear img = imread(meinv.jpg); 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素

12、的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); end figure;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); x

13、2 = x1; for i = 1 : height - n + 1 for j = 1 : width - n + 1 c = x1(i : i + (n - 1), j : j + (n - 1) .* a; %取出 x1 中从(i,j)开始的 n 行 n列元素与模板相乘 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所

14、有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 s = sum(sum(c); %求 c 矩阵中各元素之和 x2(i + (n - 1) / 2,j + (n - 1) / 2) = s / (n * n); %将与模板运算后的各元素的均值赋给模板中心位置的元素 end end %未被赋值的元素取原值 pha = uint8(x2); figure; imsh

15、ow(pha); 2% 中值滤波(最大值滤波、最小值滤波) clc close all; clear img = imread(meinv.jpg); if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所

16、有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 figure;imshow(img); img = double(img); %n 是模板大小(即 nn) n = 3; a(1 : n, 1 : n) = 1; %a 即 nn 模板,元素全是 1 height, width = size(img); % 输 入 图 像 是 height,width的 , 且h

17、ightn,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)开始的n 行n 列元素,即模板(nn 的) e = c(1, :); %是 c 矩阵的第一行 for u = 2 : n e = e, c(u, :); %将 c 矩阵变为一个行矩阵 end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结

18、果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 %mm=median(e);%mm是中值 (mm=max(e)是最大值, mm = min(e)是最小值)

19、mm = min(e); x2(i + (n - 1) / 2,j + (n - 1) / 2) = mm; %将模板各元素的中值赋给模板中心位置的元素 end end %未被赋值的元素取原值 pha = uint8(x2); figure; imshow(pha); 彩色图像平滑处理(均值滤波) close all; clear clc img = imread(meinv.jpg); if (numel(size(img) 2 %如果是彩色图像就转换为灰度图像 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的

20、数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 img = rgb2gray(img); end subplot(1, 3, 1); imshow(img); title

21、(原始图像); m, n = size(img); img = im2double(img); dimg = img;%边界 for i = 2 : m - 1% 非边界 for j = 2 : n - 1 dimg(i, j) = (img(i + 1, j) + img(i - 1, j) + img(i, j + 1) + img(i, j - 1) / 4; end end subplot(1, 3, 2); imshow(dimg); title(模板运算后的图像); subplot(1, 3, 3); imshow(img + dimg); title(增强的图像); 2 模板:

22、clc 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果

23、是彩色图像就转close all; clear img = imread(meinv.jpg); if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); end figure;imshow(img); m, n = size(img); img = im2double(img); a = input( 请输入 a 值(围在0, 1之间) :); dimg = img; %边界 for i = 2 : m - 1 %非边界 for j = 2 : n - 1 dimg(i, j) = img(i - 1, j) * (-a) + im

24、g(i, j - 1) * (-a) + img(i, j) * (1 + 4 * a) + img(i, j + 1) * (-a) + img(i + 1, j) * (-a); end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大

25、小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转end figure; imshow(img + dimg); 3 模板: clc close all; clear img = imread(meinv.jpg); if numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); end figure;imshow(img); m, n = size(img); img = im2double(

26、img); dimg = img; %边界 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取

27、原值中值滤波最大值滤波最小值滤波如果是彩色图像就转for i = 3 : m - 2 % 处理非边界像素 for j = 3 : n - 2 dimg(i, j) = img(i - 2, j - 2) + img(i - 2, j - 1) * 4 + img(i - 2, j) * 7 + img(i - 2, j + 1) * 4 + img(i - 2, j + 2) + img(i - 1, j - 2) * 4 + img(i - 1, j - 1) * 16 + img(i - 1, j) * 26 + img(i - 1, j + 1) * 16 + img(i - 1, j

28、+ 2) * 4 + img(i, j - 2) * 7 + img(i, j - 1) * 26 + img(i, j) * 41 + img(i, j + 1) * 26 + img(i, j + 2) * 7 + img(i + 1, j - 2) * 4 + img(i + 1, j - 1) * 16 + img(i + 1, j) * 26 + img(i + 1, j + 1) * 16 + img(i + 1, j + 2) * 4 + img(i + 2, j - 2) + img(i + 2, j - 1) * 4 + img(i + 2, j) * 7 + img(i +

29、 2, j + 1) * 4 + img(i + 2, j + 2); end end figure; imshow(img + dimg / 273); 拉普拉斯模板、锐化算子(P65) 4 彩色图像 拉普拉斯模板 close all; clear clc; img = imread(meinv.jpg); 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色

30、图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转if (numel(size(img) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); end subplot(221); imshow(img); xlabel(原图像); img = double(img); %数据类型转换 img = fft2

31、(img); %图像 Fourier 变换 img = fftshift(img); %Fourier 变换平移,中心变换 %中心变换代码实现,反中心变化也是一样的 % for i = 1 : m % for j = 1 : n % img(i, j) = (-1) (i + j) * img(i, j); % end % end F2 = log(abs(img); %对 Fourier 变换结果取绝对值,然后取对数 subplot(222);imshow(F2, ,InitialMagnification,fit); %将计算后的矩阵用图像表示 像归一化处理平移前的图像获取图像大小构造结果

32、矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转xlabel(b) 原始图像的 Fou

33、rier 变换图像 ); N1, N2 = size(img); %Fourier 变换图像尺寸 n = 2; %参数赋初值。高通 n = 0.3 d0 = 205; n1 = round(N1 / 2); %数据取整 n2 = round(N2 / 2); %数据取整 for i = 1 : N1 %遍历图像像素 for j = 1 : N2 d = sqrt(i - n1) 2 + (j - n2) 2); if d = 0 h = 0; else h = 1 / (1 + (d / d0) (2 * n); %高通:h = 1 / (1 + (d0 / d) (2 * n); end i

34、mg(i, j) = h * img(i, j); %图像矩阵计算处理 end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋

35、给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转end F3 = log(abs(img); %对 Fourier 变换结果取绝对值,然后取对数 subplot(223); imshow(F3, InitialMagnification, fit); xlabel(c) 滤波后的 Fourier 变换图像); img = ifftshift(img); img = ifft2(img); img = uint8(real(img); subplot(224);imshow(img); xlabel(d)Butterworth低通滤波图像); 2 理想滤波:

36、 clc close all; clear img = imread(meinv.jpg); 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的

37、各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转if numel(size(img) 2 img = rgb2gray(img); end subplot(121); imshow(img);title(原图像); img = double(img); img = fftshift(fft2(img); m, n = size(img); m0 = round(m / 2); n0 = round(n / 2); d = 20;%d = input(请输入 d:); for i = 1 : m for j = 1 : n distance =

38、 sqrt(i - m0) 2 + (j - n0) 2); if distance = d h = 1;% 高通:h = 0; else h = 0;% 高通:h = 1; end 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模

39、板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 img(i, j) = h * img(i, j); end end img = uint8(real(ifft2(ifftshift(img); subplot(122); imshow(img); title(理想低通滤波结果); 空域对灰度图像进行直方图均衡化处理 clc; clear close all; img = imread(meinv.jpg); img = rgb2gray(img);

40、I = histeq(img); height, width = size(img); figure; subplot(221);imshow(img),title(原始图像);% 显示原始图像 subplot(222);imhist(img),title(原始图像直方图);% 显示原始图像直方图 %进行像素灰度统计 NumPixe1 = zeros(1, 256);%统计各灰度数目,共 256 个灰度级 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算

41、几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转for i = 1 : height for j = 1 : width NumPixe1(img(i, j) + 1) = NumPixe1(img(i, j) + 1) + 1;%

42、对应灰度值像素点数量增加一 end end %计算灰度分布密度 ProbPixe1 = zeros(1, 256); for i = 1 : 256 ProbPixe1(i) = NumPixe1(i) / (height * width * 1.0); end %计算累计直方图分布 CumuPixe1 = zeros(1, 256); for i = 1 : 256 if i = 1 CumuPixe1(i) = ProbPixe1(i); else CumuPixe1(i) = CumuPixe1(i - 1) + ProbPixe1(i); 像归一化处理平移前的图像获取图像大小构造结果矩

43、阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转 end end %累计分布取整 Cum

44、uPixe1 = uint8(255 .* CumuPixe1 + 0.5);%矩阵乘法 %对灰度值进行映射(均衡化) for i = 1 : height for j = 1 : width img(i, j) = CumuPixe1(img(i, j) + 1); end end subplot(223);imshow(img),title(自编代码均衡化后的图像); subplot(224);imhist(img),title(自编代码均衡化后的直方图); 像归一化处理平移前的图像获取图像大小构造结果矩阵每个像素点默认初始化为黑色平移量平移量平移的变换矩阵矩阵乘法得到的结果是一个行列的数判断变换后的位置是否越界平移后的图像空域对图像进行镜像运算几何运算灰度像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像水平镜像垂直镜像彩色图像读取图像原始图像转换为类型使所有点在之间获取图像大小构造结果矩阵加将图像初始化为白色不加就是黑色水平镜像垂直镜像板大小即即模板元素全是输入图像是的且取出中从开始的行列元素与模板相乘求矩阵中各元素之和将与模板运算后的各元素的均值赋给模板中心位置的元素未被赋值的元素取原值中值滤波最大值滤波最小值滤波如果是彩色图像就转

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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