Bài giảng Xử lý tín hiệu nâng cao - Chương VI: Xử lý ảnh trong Matlab

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ạ

 

ppt 32 trang phuongnguyen 6940
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 VI: 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 VI: Xử lý ảnh trong Matlab

Bài giảng Xử lý tín hiệu nâng cao - Chương VI: 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:

  • pptbai_giang_xu_ly_tin_hieu_nang_cao_chuong_vi_xu_ly_anh_trong.ppt