數字影像處理實驗(四)影像銳化
數字影像處理實驗(四)影像銳化
實驗目的
進一步加深理解和掌握影像銳化的的概念,掌握常用空域銳化增強技術。觀
察和理解影像銳化處理對加強影像中的目標邊緣和影像細節的作用。理解圖象銳
化增強的處理過程和特點。
實驗器材
MATLAB 2018b
實驗內容
1、一階微分銳化增強
設計程式,分別實現 Roberts、Sobel、Priwitt 運算元的銳化處理。觀察處理前
後圖象效果,分析實驗結果和演算法特點。
2、拉普拉斯銳化增強
設計程式,實現拉普拉斯影像和原始影像疊加的增強處理,即
觀察處理前後影像效果,分析實驗結果和演算法特點。
實驗原理
影像銳化技術的基本方法是對影像進行微商處理,並且將運算結果與原影像
疊加。影像的梯度模值反映了影像灰度變化的速率,它包含了邊緣及細節資訊。
我們可以梯度模值的計算作為運算元,這個運算元稱為梯度運算元。常用的有 Roberts、
Sobel、Priwitt、Laplace 等運算元。
實驗記錄
imsharpening.m
function B = imsharpening(filename,type)
%%輸入引數
R = imread(filename);
if strcmp(type,'Roberts')
B1 = [0,0,0;0,-1,0;0,0,1];
B2 = [0,0,0;0,0,-1;0,1,0];
elseif strcmp(type,'Sobel')
B1 = [-1,-2,-1;0,0,0;1,2,1];
B2 = [-1,0,1;-2,0,2;-1,0,1];
elseif strcmp(type,'Priwitt')
B1 = [-1,0,1;-1,0,1;-1,0,1];
B2 = [1,1,1;0,0,0;-1,-1,-1];
elseif strcmp(type,'Laplacian')
B1 = [-1,0,1;-1,0,1;-1,0,1];
B2 = [0,0,0;0,0,0;0,0,0];
else
error('請輸入正確的運算元型別:Roberts、Sobel、Priwitt或Laplacian');
end
%% 彩色影像轉換為灰度影像
image_size=size(R);
dimension=numel(image_size);
if dimension==2 %灰度影像
R1 = R;
elseif dimension==3 %彩色影像
R1 = rgb2gray(R);
end
%% 邊緣擴充套件
[m,n] = size(R1);
R2 = zeros(m+2,n+2);
R2(2:m+1,2:n+1) = R1(1:m,1:n);
R2(1,1) = R1(1,1);
R2(1,n+2) = R1(1,n);
R2(m+2,1) = R1(m,1);
R2(m+2,n+2) = R1(m,n);
R2(1,2:n+1) = R1(1,1:n);
R2(m+2,2:n+1) = R1(m,1:n);
R2(2:m+1,1) = R1(1:m,1);
R2(2:m+1,n+2) = R1(1:m,n);
%% diff
%D0 = zeros(3,3);
D1 = zeros(m,n);
for i =1:m
for j = 1:n
D0 = R2(i:i+2,j:j+2);
C1 = B1.*D0;
C2 = B2.*D0;
if strcmp(type,'Laplacian')
D1(i,j) = sum(sum(C1));
D1(i,j) = R1(i,j) - D1(i,j);
else
D1(i,j) = abs(sum(sum(C1)))+abs(sum(sum(C2)));
end
end
end
%% 資料型別轉換
B = uint8(D1);
end
sharpening.m
clc;
clear;
I0 = imread('實驗4原圖1(一階微分空域銳化實驗).jpg');
I1 = imsharpening('實驗4原圖1(一階微分空域銳化實驗).jpg','Roberts');
I2 = imsharpening('實驗4原圖1(一階微分空域銳化實驗).jpg','Sobel');
I3 = imsharpening('實驗4原圖1(一階微分空域銳化實驗).jpg','Priwitt');
I4 = imread('實驗4原圖2(拉普拉斯銳化實驗).jpg');
I5 = imsharpening('實驗4原圖2(拉普拉斯銳化實驗).jpg','Laplacian');
figure,imshow(I0),title('{\fontsize{18} Original}');
figure,imshow(I1),title('{\fontsize{18} Roberts}');
figure,imshow(I2),title('{\fontsize{18} Priwitt}');
figure,imshow(I3),title('{\fontsize{18} Priwitt}');
figure,imshow(I4),title('{\fontsize{18} Original}');
figure,imshow(I5),title('{\fontsize{18} Laplacian}');
實驗結果
相關文章
- 個人實驗程式碼記錄 | 數字影像處理實驗3·影像直方圖與均衡化處理直方圖
- 數字影像處理實驗之對比度拉伸
- 數字影像處理day_12 影像分割
- 【傳統影像處理】1 數字影像基礎
- 數字影像處理--認識影像各種概念
- [00]數字影像處理-matlab速成Matlab
- 數字影像處理相關練習
- 數字影像處理-取樣量化(Matlab)Matlab
- visual C++數字影像處理類C++
- 影像處理--影像特效特效
- Win8 Metro(C#)數字影像處理--2.62影像對數增強C#
- 【數字影像處理】影像形態學演算法C語言實現(影像卷積,膨脹,腐蝕,開運算,閉運算,頂帽,黑帽,雕版,銳化)演算法C語言卷積
- 數字影像處理學習筆記(1)——傅立葉變換在影像處理中的應用筆記
- 【數字影像處理】直方圖均衡化詳解及程式設計實現直方圖程式設計
- webgl 影像處理2---影像畫素處理Web
- 演算法 | 數字影像處理之「中值濾波」演算法
- 驗證碼影像處理(JavaScript 版)JavaScript
- Python影像處理丨5種影像處理特效Python特效
- 影像預處理
- 數字訊號處理實驗(四):數字濾波器結構
- 視覺化影像處理 | 視覺化訓練器 | 影像分類視覺化
- Topaz Sharpen AI for Mac 影像清晰銳化處理工具AIMac
- Python 影像處理 OpenCV (6):影像的閾值處理PythonOpenCV
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- 數字影像處理(一)之灰度轉換和卷積python實現卷積Python
- [Python影像處理] 三十.影像量化及取樣處理萬字詳細總結(推薦)Python
- 數字影像處理讀書筆記(三)直方圖匹配筆記直方圖
- 前端影像處理指南前端
- 影像處理_切邊
- 影像預處理方法
- 影像輪廓處理
- 紅外影像處理
- 影像處理案例03
- OpenCV(影像NaN處理)OpenCVNaN
- 【影像處理】基於OpenCV實現影像直方圖的原理OpenCV直方圖
- Python 影像處理 OpenCV (15):影像輪廓PythonOpenCV
- openCV中的影像處理 3 影像閾值OpenCV
- Python影像處理丨三種實現影像形態學轉化運算模式Python模式