1. 程式人生 > 其它 >數字影象處理:空間域影象處理

數字影象處理:空間域影象處理

數字影象處理:空間域影象處理 一、實驗目的 理解和掌握影象的線性變換和直方圖均衡化的原理和應用; 瞭解平滑和銳化處理的演算法和用途,學習使用平滑濾波器和邊緣運算元對影象進行平滑和銳化操作。 二、實驗內容 1. 影象直方圖 (1) 讀入一幅影象,計算並繪製圖像的直方圖。 (2) 讀入一幅低對比度影象,對影象進行直方圖均衡化處理。 2. 編寫程式,實現以下功能: (1) 讀入一幅影象,利用’imnoise’函式,新增高斯噪聲; (2) 通過100次相加求平均的方法去除噪聲。 3. 影象的平滑和銳化濾波 (1) 讀入一幅影象,分別採用均值和高斯濾波器對影象進行平滑處理。 (提示: 影象濾波首先使用fspecial()函式建立平滑或銳化濾波器,然後呼叫imfilter()函式實現相應的濾波操作) (2) 分別採用’prewitt’和’sobel’邊緣運算元對影象做邊緣增強處理。

數字影象處理:空間域影象處理

直接跳轉到程式碼


注:別忘了圖片的路徑改成自己的

一、實驗目的

理解和掌握影象的線性變換和直方圖均衡化的原理和應用;
瞭解平滑和銳化處理的演算法和用途,學習使用平滑濾波器和邊緣運算元對影象進行平滑和銳化操作。

二、實驗內容

1. 影象直方圖

(1) 讀入一幅影象,計算並繪製圖像的直方圖。
(2) 讀入一幅低對比度影象,對影象進行直方圖均衡化處理。

2. 編寫程式,實現以下功能:

(1) 讀入一幅影象,利用’imnoise’函式,新增高斯噪聲;
(2) 通過100次相加求平均的方法去除噪聲。

3. 影象的平滑和銳化濾波

(1) 讀入一幅影象,分別採用均值和高斯濾波器對影象進行平滑處理。
(提示: 影象濾波首先使用fspecial()函式建立平滑或銳化濾波器,然後呼叫imfilter()函式實現相應的濾波操作)
(2) 分別採用’prewitt’和’sobel’邊緣運算元對影象做邊緣增強處理。

實驗結果圖如下:


程式碼如下:

%1.1
pic=imread('lena.jpg');                    %讀入圖片'lena.jpg'
figure('name','實驗結果1');
subplot(2,2,1);
imshow(pic);
title('原圖1');
A=imhist(pic);                             %取直方圖
subplot(2,2,3);
bar(0:255,A);                              %形成256個等級的直方圖
title('灰度影象直方圖');

%1.2
pic1=imread('lena1.jpg');                  %讀入圖片'lena1.jpg'
subplot(2,2,2);
imshow(pic1);
title('原圖2');
B=imhist(histeq(pic1));                    %先進行均衡化,再取直方圖
subplot(2,2,4);
bar(0:255,B);                              %形成256個等級的直方圖
title('灰度影象均衡直方圖');

%2.1
figure('name','實驗結果2');
subplot(4,2,1);
imshow(pic);
title('原圖');
C=imnoise(pic,'gaussian',0,0.01);          %新增均值為0,方差為0.01的高斯噪聲
subplot(4,2,3);
imshow(C);
title('新增均值為0,方差為0.01的高斯噪聲');

%2.2
[m n]=size(pic)                            %獲取大小
D=zeros(m,n)                               %建立全0陣列
for i=0:99                                 %迴圈100次 
  C=imnoise(pic,'gaussian',0,0.01);        %隨機加噪
  C1=im2double(C);                         %轉成double型進行相加
  D=D+C1;
end
D=D/100; 
subplot(4,2,4);
imshow(D);
title('去除噪聲後圖像');

%3.1
E=imfilter(pic,fspecial('average',8));       %生成一個8x8的均值濾波器
F=imfilter(pic,fspecial('gaussian'));        %生成高斯濾波器
subplot(4,2,5);
imshow(E);
title('均值平滑處理後圖像');
subplot(4,2,6);
imshow(F);
title('高斯濾波器平滑處理後圖像');

%3.2
G=pic-uint8(imfilter(pic,fspecial('prewitt')));%生成’prewitt’模板,並對輸入影象做邊緣增強,再加上原影象
subplot(4,2,7);
imshow(G);
title('’prewitt’對影象做邊緣增強處理後圖像');
H=pic-uint8(imfilter(pic,fspecial('sobel')));%生成’sobel’模板,並對輸入影象做邊緣增強,再加上原影象
subplot(4,2,8);
imshow(H);
title('’sobel’對影象做邊緣增強處理後圖像');

分享從不妥協,程式碼改變世界。
  來自戈小戈,轉載請註明原文連結:https://www.cnblogs.com/wsgxg/p/15422242.html