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