數(shù)字圖像處理期末復(fù)習(xí)資料_第1頁
數(shù)字圖像處理期末復(fù)習(xí)資料_第2頁
數(shù)字圖像處理期末復(fù)習(xí)資料_第3頁
數(shù)字圖像處理期末復(fù)習(xí)資料_第4頁
數(shù)字圖像處理期末復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、空域內(nèi)對(duì)圖像進(jìn)行平移運(yùn)算(幾何運(yùn)算)圖像平移變換式的矩陣形式為:P37close all;clear all;clc;%圖像的平移運(yùn)算Im = imread('meinv.jpg');if numel(size(Im) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 Im = rgb2gray(Im); endIm = im2double(Im); %歸一化處理subplot(1, 2, 1); imshow(Im); title('平移前的圖像');m, n = size(Im); %獲取圖像大小res = zeros(m, n) + 255; %構(gòu)造結(jié)果矩陣

2、。每個(gè)像素點(diǎn)默認(rèn)初始化為0(黑色)delX = 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; %矩陣乘法 得到的結(jié)果是一個(gè)3行1列的數(shù) x = tmp(1, 1); y = tmp(2, 1); %判斷變換后的位置是否越界 if (x <= m) && (y <= n) && (x >= 1) && (y >= 1)

3、 res(x, y) = Im(i, j); end endendsubplot(1, 2, 2); imshow(res); title('平移后的圖像');空域內(nèi)對(duì)圖像進(jìn)行鏡像運(yùn)算(幾何運(yùn)算)%灰度圖像clcclearimg = imread('meinv.jpg');%讀取圖像if ndims(img) = 3 %ndims(a)表示矩陣a的維數(shù)。如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); % 轉(zhuǎn)換endsubplot(1, 3, 1); imshow(img); title('原始圖像');img = im2

4、double(img);% 轉(zhuǎn)換為double類型,使所有點(diǎn)在0-1之間m, n = size(img);%獲取圖像大小res1 = zeros(m, n) + 255;%構(gòu)造結(jié)果矩陣,加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);%垂直鏡像 endendsubplot(1, 3, 2); imshow(res1); title('水平鏡像');

5、subplot(1, 3, 3); imshow(res2); title('垂直鏡像');imwrite(res1, 'hor.bmp');imwrite(res2, 'ver.bmp');%彩色圖像clcclearimg = imread('meinv.jpg');%讀取圖像subplot(1, 3, 1); imshow(img); title('原始圖像');img = im2double(img);% 轉(zhuǎn)換為double類型,使所有點(diǎn)在0-1之間m, n, l = size(img);%獲取圖像大小res

6、1 = zeros(m, n, l) + 255;%構(gòu)造結(jié)果矩陣,加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);%水平鏡像 res2(m - i + 1, j, k) = img(i, j, k);%垂直鏡像 end endendsubplot(1, 3, 2); imshow(res1); title('水平鏡像');subplot(1, 3, 3); imshow(re

7、s2); title('垂直鏡像');imwrite(res1, 'hor.bmp');imwrite(res2, 'ver.bmp');空域內(nèi)使用指定的模板對(duì)灰度圖像進(jìn)行平滑處理1%均值濾波clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); endfigure;imshow(img);img = double(img);%n是模板大小(即n×n) n = 3

8、; a(1 : n, 1 : n) = 1; %a即n×n模板,元素全是1 height, width = size(img); %輸入圖像是height,width的,且hight>n,width>n 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 +

9、(n - 1) / 2,j + (n - 1) / 2) = s / (n * n); %將與模板運(yùn)算后的各元素的均值賦給模板中心位置的元素 end end %未被賦值的元素取原值 pha = uint8(x2); figure; imshow(pha);2%中值濾波(最大值濾波、最小值濾波)clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); endfigure;imshow(img);img = double(im

10、g);%n是模板大小(即n×n) n = 3; a(1 : n, 1 : n) = 1; %a即n×n模板,元素全是1 height, width = size(img); %輸入圖像是height,width的,且hight>n,width>n 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 =

11、c(1, :); %是c矩陣的第一行 for u = 2 : n e = e, c(u, :); %將c矩陣變?yōu)橐粋€(gè)行矩陣 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;clearclcimg = imread(

12、9;meinv.jpg');if (numel(size(img) < 3) disp('請(qǐng)輸入彩色圖像');else subplot(2, 3, 1); imshow(img); title('原始圖像'); img = imnoise(img, 'gaussian');%g=imnoise(f,gaussian,m,var)是將均值為m,方差為var的高斯噪聲加到圖像f上。m的默認(rèn)值是0、var默認(rèn)值是0.01 subplot(2, 3, 2); imshow(img); title('添加噪聲后的圖像'); %

13、分解 img = double(img); R = img(:, :, 1); G = img(:, :, 2); B = img(:, :, 3); %對(duì)彩色圖像的R分量進(jìn)行平滑處理,而其它分量保持不變 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)

14、 / 9; end end img1 = cat(3, R, G, B); img1 = uint8(img1); subplot(2, 3, 3); imshow(img1); title('R分量平滑處理后'); %對(duì)彩色圖像的R分量和G分量進(jìn)行平滑處理,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 -

15、 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(i - 1, j + 1) + G(i, j - 1) + G(i, j) + G(i, j + 1) + G(i + 1, j - 1) + G(i + 1, j) + G(i + 1,j + 1) / 9; end end img2 = cat(3, R, G, B); img2 = uint8(i

16、mg2); subplot(2, 3, 4); imshow(img2); title('對(duì)R和G分量進(jìn)行平滑處理后'); %對(duì)彩色圖像的3個(gè)分量同時(shí)進(jìn)行平滑處理 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 +

17、 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(i - 1, j + 1) + G(i, j - 1) + G(i, j) + G(i, j + 1) + G(i + 1, j - 1) + G(i + 1, j) + G(i + 1, j + 1) / 9; B(i, j) = (B(i - 1, j - 1) + B(i - 1, j) + B(i - 1, j + 1) + B(i, j - 1) + B(i, j) + B(i, j + 1) + B(

18、i + 1, j - 1) + B(i + 1, j) + B(i + 1, j + 1) / 9; end end img3 = cat(3, R, G, B); img3 = uint8(img3); subplot(2, 3, 5); imshow(img3); title('對(duì)3個(gè)分量進(jìn)行平滑處理后');end空域內(nèi)對(duì)灰度圖像或彩色圖像進(jìn)行模板卷積運(yùn)算及增強(qiáng)處理 1模板:clcclose all;clear%FileName, FilePath = uigetfile('*.jpg;*.png;*.tif;*.img;*.gif;','請(qǐng)選擇圖像

19、數(shù)據(jù)');%str = FilePath FileName;img = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); endsubplot(1, 3, 1); imshow(img); title('原始圖像');m, n = size(img);img = im2double(img);dimg = img;%邊界for i = 2 : m - 1%非邊界 for j = 2 : n - 1 dimg(i, j) = (img(i

20、+ 1, j) + img(i - 1, j) + img(i, j + 1) + img(i, j - 1) / 4; endendsubplot(1, 3, 2); imshow(dimg); title('模板運(yùn)算后的圖像');subplot(1, 3, 3); imshow(img + dimg); title('增強(qiáng)的圖像');2模板:clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(

21、img); endfigure;imshow(img);m, n = size(img);img = im2double(img);a = input('請(qǐng)輸入a值(范圍在0, 1之間):');dimg = img; %邊界for i = 2 : m - 1 %非邊界 for j = 2 : n - 1 dimg(i, j) = img(i - 1, j) * (-a) + img(i, j - 1) * (-a) + img(i, j) * (1 + 4 * a) + img(i, j + 1) * (-a) + img(i + 1, j) * (-a); endendfig

22、ure; imshow(img + dimg);3模板:clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); endfigure;imshow(img);m, n = size(img);img = im2double(img);dimg = img; %邊界for i = 3 : m - 2 %處理非邊界像素 for j = 3 : n - 2 dimg(i, j) = img(i - 2, j - 2) + img

23、(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 + 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

24、 + 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 + 2, j + 1) * 4 + img(i + 2, j + 2); endendfigure; imshow(img + dimg / 273);拉普拉斯模板、銳化算子(P65)4彩色圖像 拉普拉斯模板clos

25、e all;clearclc;img = imread('meinv.jpg');if (numel(size(img) < 3) disp('請(qǐng)輸入彩色圖像');else subplot(2, 2, 1); imshow(img); title('原始圖像'); img = im2double(img); R = img(:, :, 1); G = img(:, :, 2); B = img(:, :, 3); %對(duì)R分量使用基本的Laplacian模板(P65)進(jìn)行增強(qiáng)處理;R1 = R + R0 m, n = size(R); R1

26、= R; for i = 2 : m - 1 for j = 2 : n - 1 R1(i, j) = R(i, j) * (-4) + R(i - 1, j) + R(i + 1, j) + R(i, j - 1) + R(i, j + 1); end end R2 = R - R1; %模板中心為負(fù), 做減法運(yùn)算 img1 = cat(3, R2, G, B); subplot(2, 2, 2); imshow(img1); title('對(duì)R分量處理后'); %對(duì)R和G分量使用擴(kuò)展的Laplacian模板進(jìn)行增強(qiáng)處理; m, n = size(R); R1 = R; G1

27、 = G; for i = 2 : m - 1 for j = 2 : n - 1 R1(i, j) = R(i, j) * (-8) + R(i - 1, j) + R(i + 1, j) + R(i, j - 1) + R(i, j + 1) + R(i - 1, j - 1) + R(i + 1, j - 1) + R(i - 1, j + 1) + R(i + 1, j + 1); G1(i, j) = G(i, j) * (-8) + G(i - 1, j) + G(i + 1, j) + G(i, j - 1) + G(i, j + 1) + G(i - 1, j - 1) + G

28、(i + 1, j - 1) + G(i - 1, j + 1) + G(i + 1, j + 1); end end R2 = R - R1; %模板中心為負(fù), 做減法運(yùn)算 G2 = G - G1; img2 = cat(3, R2, G2, B); subplot(2, 2, 3); imshow(img2); title('對(duì)R和G分量處理后'); %使用擴(kuò)展的Laplacian模板對(duì)彩色圖像的三個(gè)分量進(jìn)行增強(qiáng)處理 m, n = size(R); R1 = R; G1 = G; B1 = B; for i = 2 : m - 1 for j = 2 : n - 1 R1(

29、i, j) = R(i, j) * (-8) + R(i - 1, j) + R(i + 1, j) + R(i, j - 1) + R(i, j + 1) + R(i - 1, j - 1) + R(i + 1, j - 1) + R(i - 1, j + 1) + R(i + 1, j + 1); G1(i, j) = G(i, j) * (-8) + G(i - 1, j) + G(i + 1, j) + G(i, j - 1) + G(i, j + 1) + G(i - 1, j - 1) + G(i + 1, j - 1) + G(i - 1, j + 1) + G(i + 1, j

30、 + 1); B1(i, j) = B(i, j) * (-8) + B(i - 1, j) + B(i + 1, j) + B(i, j - 1) + B(i, j + 1) + B(i - 1, j - 1) + B(i + 1, j - 1) + B(i - 1, j + 1) + B(i + 1, j + 1); end end R2 = R - R1; %模板中心為負(fù), 做減法運(yùn)算 G2 = G - G1; B2 = B - B1; img3 = cat(3, R2, G2, B2); subplot(2, 2, 4); imshow(img3); title('對(duì)3個(gè)分量處

31、理后');end頻域內(nèi)對(duì)圖像進(jìn)行低通處理(理想、Butterworth等)。6部(P83)1Butterworth濾波:clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 %如果是彩色圖像就轉(zhuǎn)換為灰度圖像 img = rgb2gray(img); endsubplot(221); imshow(img); xlabel('原圖像');img = double(img); %數(shù)據(jù)類型轉(zhuǎn)換img = fft2(img); %圖像Fourier變換img = fftshif

32、t(img); %Fourier變換平移,中心變換%中心變換代碼實(shí)現(xiàn),反中心變化也是一樣的% for i = 1 : m% for j = 1 : n% img(i, j) = (-1) (i + j) * img(i, j);% end% endF2 = log(abs(img); %對(duì)Fourier變換結(jié)果取絕對(duì)值,然后取對(duì)數(shù)subplot(222);imshow(F2, ,'InitialMagnification','fit'); %將計(jì)算后的矩陣用圖像表示xlabel('(b)原始圖像的Fourier變換圖像 ');N1, N2 = s

33、ize(img); %Fourier變換圖像尺寸n = 2; %參數(shù)賦初值。高通n = 0.3d0 = 205;n1 = round(N1 / 2); %數(shù)據(jù)取整n2 = round(N2 / 2); %數(shù)據(jù)取整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 img(i, j) = h * img(i, j); %圖像矩陣

34、計(jì)算處理 endendF3 = log(abs(img); %對(duì)Fourier變換結(jié)果取絕對(duì)值,然后取對(duì)數(shù)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理想濾波:clcclose all;clearimg = imread('meinv.jpg');if numel(size(img) > 2 img = rgb2gray(img);endsubplot(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('請(qǐng)輸入d:');for i = 1 : m for j =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論