數字影象處理:空間域影象處理
阿新 • • 發佈:2021-10-18
數字影象處理:空間域影象處理
一、實驗目的
理解和掌握影象的線性變換和直方圖均衡化的原理和應用;
瞭解平滑和銳化處理的演算法和用途,學習使用平滑濾波器和邊緣運算元對影象進行平滑和銳化操作。
二、實驗內容
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