文档详情

数字图像的增强处理2.docx

发布:2018-01-19约6.99千字共16页下载文档
文本预览下载声明
数字图像的增强处理实验目的与要求掌握数字图像的增强技术能编程实现图像的平滑运算掌握图像的卷积运算原理和模板运算掌握一阶和二阶图像增强处理实验内容编程实现图像的平滑运算;%均值滤波clcclose all;clear%userpath(G:\DigitImage\Image\);[FileName,FilePath]=uigetfile(*.jpg;*.png;*.tif;*.img;*.gif;,请选择图像数据);str = [FilePath FileName];img = imread(str);if numel(size(img)) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); endfigure;imshow(img);img = double(img);%n是模板大小(即n×n) n = 3; a(1 : n, 1 : n) = 1; %a即n×n模板,元素全是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; %取出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);---------------------------------------------------------------%中值滤波(最大值滤波、最小值滤波)clcclose all;clear%userpath(G:\DigitImage\Image\);[FileName, FilePath] = uigetfile(*.jpg;*.png;*.tif;*.img;*.gif;,请选择图像数据);str = [FilePath FileName];img = imread(str);if numel(size(img)) 2 %如果是彩色图像就转换为灰度图像 img = rgb2gray(img); endfigure;imshow(img);img = double(img);%n是模板大小(即n×n) n = 3; a(1 : n, 1 : n) = 1; %a即n×n模板,元素全是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)开始的n行n列元素,即模板(n×n的) e = c(1, :); %是c矩阵的第一行 for u = 2 : n e = [e, c(u, :)]; %将c矩阵变为一个行矩阵 end mm=median(e);%mm是中值(mm=max(e)是最大值,mm = min(e)是最小值) x2(i + (n - 1) / 2,j + (n - 1) / 2) = mm; %将模板各元素的中值赋给模板中心位置的元素 end end %未被赋值的元素取原值 pha = uint8(x2); figure; imshow(pha);编程实现如下模板的图像处理(请不要用conv2函数实现)其中a是要输入的一个参数,范围在[0, 1]之间%第一个模板clcclose all;clear%userpath(G:\DigitImage\Image\);[FileName,FilePath]=uigetfile(*.jpg;*.png;*.tif;*.img;*.gif;,请选择图像数据
显示全部
相似文档