Bài giảng Xử lý tín hiệu nâng cao - Chương 6: Xử lý ảnh trong Matlab
Phép dãn Histogram
>> I = imread('pout.tif');
>> figure, imhist(I)
Phép dãn là phép thay đổi tuyến tính biểu đồ Histogram, không làm thay đổi hình dạng của ảnh
San phẳng (cân bằng) Histogram
Cân bằng Histogram là phép biến đổi phi tuyến nhằm thu được sự phân bố đều các giá trị mức xám
Phép lọc tuyến tính
Cơ sở tính toán của phép lọc tuyến tính là dựa trên phép nhân chập
Ảnh thu được sẽ là tổng hợp trọng số hay là trung bình trọng số các điểm lân cận với mặt nạ
Điểm chịu tác động của biến đổi là điểm ở tâm mặt nạ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Xử lý tín hiệu nâng cao - Chương 6: Xử lý ảnh trong Matlab", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Xử lý tín hiệu nâng cao - Chương 6: Xử lý ảnh trong Matlab
CHƯƠNG VI
Xử lý tín hiệu số nâng cao
Xử lý ảnh trong Matlab
Biến đổi histogram
Phép dãn Histogram
>> I = imread('pout.tif');
>> figure, imhist(I)
Phép dãn là phép thay đổi tuyến tính biểu đồ Histogram, không làm thay đổi hình dạng của ảnh
Công thức
Biến đổi histogram
Trong matlab sử dụng lệnh imtool
Kết quả
Biến đổi histogram
Biến đổi histogram
San phẳng (cân bằng) Histogram
Cân bằng Histogram là phép biến đổi phi tuyến nhằm thu được sự phân bố đều các giá trị mức xám
Công thức
Biến đổi histogram
Trong Matlab
I2 = imadjust(I);
Ví dụ với ảnh trên
Phép lọc tuyến tính
Cơ sở tính toán của phép lọc tuyến tính là dựa trên phép nhân chập
Ảnh thu được sẽ là tổng hợp trọng số hay là trung bình trọng số các điểm lân cận với mặt nạ
Điểm chịu tác động của biến đổi là điểm ở tâm mặt nạ
Phép lọc tuyến tính
Trong Matlab, sử dụng hàm fspecial để tạo mặt nạ lọc
>> H= fspecial('type',parameter)
'average' averaging filter
'disk' circular averaging filter
'gaussian' Gaussian lowpass filter
'motion' motion filter
'prewitt' Prewitt horizontal edge-emphasizing filter
'sobel' Sobel horizontal edge-emphasizing filter
'unsharp' unsharp contrast enhancement filter
Phép lọc tuyến tính
Tự tạo bộ lọc
>>h=1/10*[1 1 1; 1 2 1; 1 1 1]
Sử dụng hàm imfilter để lọc ảnh
>> I2=imfilter(I1,H)
Trong đó:
I1: ma trận chứa dữ liệu điểm ảnh
H: mặt nạ lọc
I2: Ảnh đã qua phép lọc
Phép lọc tuyến tính
Mặt nạ average
H= fspecial('average',[r c])
Bộ lọc trung bình, kích thước mặc định 3x3
Ví dụ:
Phép lọc tuyến tính
Mặt nạ disk
H= fspecial('disk',r)
Bộ lọc tròn chung bình, r có mặc định bằng 5
Mặt nạ lọc có kích thước 2r+1
Ví dụ: H= fspecial('disk',3)
Mặt nạ gaussian
H= fspecial('gaussian',[r c],sig)
Mặc định là 3x3 và sig=0.5
Các hệ số của là các phần tử rời rạc của phân bố Gauss
Phép lọc tuyến tính
Mặt nạ motion
H= fspecial('motion',len,theta)
Giá trị mặc định len=9, theta=0
Được sử dụng để làm nhòe ảnh có hướng
Ví dụ:
I = imread('saturn.tif');
subplot(1,2,1);imshow(I);title('Original');
H = fspecial('motion',50,45);
I2 = imfilter(I,H);
subplot(1,2,2);imshow(I2);title('Motion Blurred');
Phép lọc tuyến tính
Mặt nạ prewitt
H=fspecial('prewitt')
Mặt nạ sobel
H=fspecial('sobel')
Phép lọc tuyến tính
Mặt nạ unsharp
H= fspecial('unsharp',alpha)
Tăng cường độ nét và tương phản
Kích thước 3x3, tham số alpha mặc định = 0.2
Ví dụ:
I = imread('moon.tif');
h =fspecial('unsharp');
imshow(I)
I2 = imfilter(I,h);
figure,imshow(I2)
Phép lọc tuyến tính
Lọc tuyến tính
Mặt nạ Lapalacian
fspecial('laplacian', alpha)
Tăng độ sắc nét cho ảnh
Phép lọc tuyến tính
Ví dụ
I=imread('cameraman.tif');
H = fspecial('average');
I2 = imfilter(I,H);
imshow(I);figure,imshow(I2);
Loại bỏ viền đen
Loại bỏ viền đen
Để loại bỏ viền đen
I3 = imfilter(I,H,'replicate');
imshow(I2);figure,imshow(I3);
Phép lọc phi tuyến
Mục đích giảm nhiễu xung
Các loại bộ lọc phi tuyến
Bộ lọc hạng bậc
Bộ lọc trung vị
Bộ lọc co giãn
Bộ lọc bậc r
Bộ lọc k láng giềng
Lọc phi tuyến
Bộ lọc hạng: là phương pháp lọc trong đó mức xám tại một điểm được tính dựa trên sự xếp hạng các điểm ảnh lân cận.
Hàm ordfilt2 cung cấp cho ta bộ lọc dạng này
g= ordfilt2(f, order, domain)
Ví dụ
g=ordfilt2(f,1,ones(m,n));
g=ordfilt2(f,m*n,ones(m,n));
Bộ lọc phi tuyến
Lọc trung vị
g=ordfilt2(f,median(1:m*n),ones(m,n));
Matlab cũng cung cấp hàm medfilt2 để thực hiện lọc trung vị.
g=medfilt2(f);
Ví dụ
I = imread('eight.tif');
J = imnoise(I,'salt & pepper',0.02);
K = medfilt2(J);
imshow(J), figure, imshow(K)
Khôi phục ảnh
Khôi phục ảnh tập trung vào việc loại bỏ hay giảm thiểu sự biến dạng xảy ra trong quá trình thu nhận ảnh.
Sự biến dạng ảnh có thể bao gồm :
Nhiễu-là những sai khác trong giá trị của pixel,
Ảnh hưởng quang học : sự mở do việc chuyển động của camera
Ta có dạng tổng quát của ảnh bị biến dạng:
g(x,y) = f(x,y)*h(x,y) + n(x,y)
Khôi phục ảnh
Nhiễu muối tiêu
I2= imnoise(I1,'salt & pepper')
Khôi phục ảnh
Nhiễu gaussian
t = imnoise(image,’gaussian’)
Khôi phục ảnh
Các phương pháp
Sử dụng bộ lọc trung bình
Bộ lọc hạng
Bộ lọc chắn dải
Bộ lọc thông dải
Tách biên ảnh
Biên ảnh là các điểm có cường độ thay đổi nhanh.
Tìm biên ảnh bằng cách sử dụng một trong hai tiêu chuẩn tổng quát sau:
Tìm các nơi đạo hàm bậc nhất của cường độ sáng có biên độ hơn một ngưỡng.
Tìm các nơi đạo hàm bậc hai của cường độ sáng có sự thay đổi qua mức 0
Tách biên ảnh
Trong Matlab ta sử dụng hàm edge, cú pháp
I2 = edge (I1,'method')
Trong đó Trong đó 'method' gồm : Sobel, Prewitt, Roberts, Cany v.v...
Ví dụ
I= imread('rice.tif');
BW1 = edge(I,'prewitt');
BW2 = edge(I,'canny');
imshow(BW1)
figure, imshow(BW2)
Tách biên ảnh
Kết quả
Lọc ảnh trên miền tần số
Thực hành
Các lệnh cơ bản
imread
Imshow
Imwrite
Phép biến đổi Histogram
Imhist
File đính kèm:
bai_giang_xu_ly_tin_hieu_nang_cao_chuong_6_xu_ly_anh_trong_m.ppt

