6 CÂN BẰNG TẦN SUẤT- Ảnh I được gọi là cân bằng lí tưởng nếu với mọi mức xám g, g’ ta có o h g= h g’ - Giả sử có I kích thước m *n - New_level : số mức xám mới của ảnh sau cân bằng, thôn
Trang 1Báo cáo xử lý ảnh
Đề tài:
Giảm nhiễu cho ảnh bằng nhiều bộ lọc với các loại nhiễu khác nhau (Nhiễu muỗi tiêu, nhiễu lốm đốm, nhiễu Gaussian và nhiễu ngẫu nhiên với mật độ
nhiễu khác nhau)
Nhóm 7:
1.Chử Thị Thúy Hằng - MSV: B14DCCN519
2.Trương Thị Lan - MSV: B14DCCN341
3.Đoàn Thị Hương - MSV: B14DCCN014
4.Nguyễn Thị Hòa - MSV: B14DCCN157
I.Khái niệm cơ bản về xử lý ảnh
1) Khái niệm ảnh
Ảnh trắng đen thực chất là hàm một chiều cường độ sáng f(x,y) trong đó
x và y là các tọa độ sáng của ảnh tại điểm đó Nếu chúng ta có một ảnh màu thì
f là một vector mà mỗi thành phần của vector đó chỉ ra cường độ sáng của ảnh tại điểm (x,y) đó tương đương với dải màu
Để đơn giản ở đây ta chỉ xét đến ảnh số Một ảnh số là một ảnh mà hàm f(x,y) của nó đã được rời rạc hóa theo cả tọa độ không gian và cường độ sáng của nó Nếu là ảnh trắng đen thì nó được biểu diễn theo một mảng 2 chiều, còn nếu là một ảnh màu thì nó được biểu diễn theo một chuỗi các mảng hai chiều
mà mỗi mảng 2 chiều đó tương đương ứng với một dải màu Giá trị cường độ sáng đã được số hóa được gọi là giá trị mức xám
Mỗi thành phần của mảng được gọi là một phần tử ảnh(pixel: picture element) và nó được biểu diễn như sau:
f(x,y) =
Với 0 ≤ f(x,y) ≤ G – 1 : trong đó thông thường N và G được biểu diễn dưới dạng số mũ của 2 (N = 2n,G = 2m)
f(0,0) f(0,1) ……… f(0,n) f(1,0) f(1,1) ……… f(1,n) ………
f(n,0) f(n,1) ……… f(n,n)
Trang 22) Thực chất của quá trình xử lý ảnh.
Thực chất của quá trình xử lý ảnh có thể thực hiện theo sơ đồ khối sau:
II) cơ sở lý thuyết bài tập bắt buộc
1) TÁCH NGƯỠNG
- Giả sử ta có ảnh I kích thước m*n, hai số Min, Max và ngưỡng €
- Khi đó, kỹ thuật tách ngưỡng được thể hiện :
- I [i,j] =I[i,j] >= € ? Max: Min; với mọi (i,j)
CODE :
for i=1:size(I,1)
for j=1:size(I,2)
if I(i,j)>=160
I(i,j)=1;
else I(i,j)=0;
end end end
I= 56 28 95
F=30
Giải:
2) KHUẾCH TÁN LỖI 1 CHIỀU
- Quét ảnh lần lượt từng dòng và từng điểm ảnh một
- So sáng với giá trị xám trung bình
Nếu giá trị xám lớn hơn thì thay bằng điểm ảnh trắng
Thu
nhận
ảnh
Số hóa
Tiền
xử lý
Phân tích ảnh
Nhận dạng ảnh
Sơ đồ khối các bước trong quá trình xử lý ảnh
Trang 3Nếu giá trị xám nhỏ hơn thì thay bằng ảnh điểm đen
- Vi điểm ảnh hoặc đen hoặc trắng nên giá trị bị làm tròn, phần thừa này được chuyển sang điểm tiếp theo
- Quá trình được tiếp tục lặp đi lặp lại
CODE :
[hang,cot]=size(I);
for i=1:hang
for j=1:cot
if j~=cotif I(i,j)<f I(i,j+1)=I(i,j+1)+I(i,j);
I(i,j)=0;
else I(i,j+1)=I(i,j+1)+I(i,j)-255;
I(i,j)=255;
end else if I(i,j)<f I(i,j)=0;
else I(i,j)=255;
end end end end end VD)
35 76 93 23 45
23 53 89 49 61
83 59 64 84 28
F=90
Giải:
A11=35<90 => a11= 0;
A12=76+35=111 >90 => a12=255;
A13=(111-255)+93=-21<90 => a13=0;
A14=23+(-21)= 2<90 =>a14=0;
A15= 25+2 =27<90 => a15=0;
Tương tự các hàng tiếp theo ta có kết quả
Trang 4I= 0 0 255 0 0
3) KHUẾCH TÁN LỖI 2 CHIỀU
- Khuếch tán lỗi 2 chiều sẽ giảm lỗi để lại những đường dọc không mong muốn của khuếch tán lỗi một chiều để lại
- Phần dư sẽ được khuếch tán một phần ả xuống dòng dưới
CODE :
for i=1:hang
for j=1:cot
if I(i,j)<f
if j<cot
I(i,j+1)=I(i,j+1)+round(I(i,j)*7/16);
end
if i<hang && j>1
I(i+1,j-1)=I(i+1,j-1)+round(I(i,j)*3/16);
end
if i<hang
I(i+1,j)=I(i+1,j)+round(I(i,j)*5/16);
end
if i<hang && j<cot
I(i+1,j+1)=I(i+1,j+1)+round(I(i,j)*1/16);
end
I(i,j)=0;
else
if j<cot
I(i,j+1)=I(i,j+1)+round((I(i,j)-255)*7/16);
end
if i<hang && j>1
I(i+1,j-1)=I(i+1,j-1)+round((I(i,j)-255)*3/16); end
if i<hang
I(i+1,j)=I(i+1,j)+round((I(i,j)-255)*5/16);
end
if i<hang && j<cot
I(i+1,j+1)=I(i+1,j+1)+round((I(i,j)-255)*1/16); end
Trang 5end
end
end
VD)
Cho ma trân của Floyd : 1 _ # 3
I = 255 36 98
56 41 28
F= 120
Giải:
Có _ và # là những điểm ảnh đã và đang được xử lí
Có a12=36 < 120 => a12=0;
255 0 122
99 55 57
A13=122> 120 =>a13=255;
255 0 255
99 105 4
4) TĂNG GIẢM ĐỘ SÁNG
- Giả sử ta có ảnh I kích thước m*n và số nguyên c
- Khi đó thuật tăng giảm độ sáng được thể hiện
- I ( i,j) = I ( i,j) +c
- Nếu c > 0 thì ảnh sáng lên Nếu c <0 thì ảnh tối đi CODE
for i=1:size(I,1)
for j=1:size(I,2)
c=I(i,j)+f;
if c>=255
I(i,j)=255;
else I(i,j)=c;
Trang 6end
VD) cho ảnh sau
23 54 71
- Với c =2 thì ta có ảnh sáng lên, ảnh lúc đó sẽ là:
25 56 73
- Với c= -2 thì ta có ảnh tối đi, lúc này ảnh sẽ là :
21 52 69
5) BIỂU ĐỒ TẦN SUẤT
Biểu đồ tần suất(historgram) biểu đồ tần suất mức xám g của ảnh I là số điểm ảnh có giá trị g của ảnh I KH là H(g) Mục đích đưa ra ảnh có mức xám được phân bố đồng đều
CODE
for k=1:256
g(k)=k-1;
end
for k=1:256
h(k)=0;
end
for i=1:size(I,1)
for j=1:size(I,2)
h(I(i,j)+1)=h(I(i,j)+1)+1;
end
end
h
end
VD:
Trang 76) CÂN BẰNG TẦN SUẤT
- Ảnh I được gọi là cân bằng lí tưởng nếu với mọi mức xám g, g’ ta có
o h( g)= h (g’)
- Giả sử có I kích thước m *n
- New_level : số mức xám mới của ảnh sau cân bằng, thông thường giá trị này có thể bằng số mức xám của ảnh gốc
- TB số điểm ảnh trung bình của mỗi mức xám của ảnh đã cân bằng
- T(g) số điểm ảnh có mức xám <= g trên ảnh gốc
- Cần xác định hàm f: g -> f(g) sao cho:
F(g)= max{ 0, round( )}
CODE
VD cho ảnh sau cân bằng ảnh với new_level =5
7) TÌM NGƯỠNG TỰ ĐỘNG
- Kỹ thuật tìm tách ngưỡng tự động nhằm tìm ra ngưỡng € một cách tự động dựa vào histogram
- Kỹ thuật này dựa theo nguyên lí trong vật lú là vật thể tách làm 2 phần nếu tổng độ lệch trong từng phần là tối thiểu
- Giả sử ta có ảnh I:
- Có kích thước m*n
Trang 8- G là số mức xám của ảnh kể cả khuyết thiếu
- T(g) số điểm ảnh có mức xám <= g
- Momen quán tính TB có mức xám <= la:
- M(g)
- Hàm f: g-> f(g)
F(g)=
Tìm € sao cho :
F(€)= max{f(g)}
VD:
Tìm ngưỡng tự động của ảnh
Có bảng Histogram
Vậy f(€)=2,1 => €=1
Vậy ngưỡng bằng 1
8) NHÂN CHẬP
Phép nhân chập là phép biến đổi cửa sổ di chuyển có kích thước(2n+1)x(2m+1) vơi công thức như sau:
VD:
Trang 9T= 1 0
Giải:
KQ:
I = 7 3 16 4
9) LỌC TRUNG VỊ
- Các bước thuật toán lọc trung vị:
Sử dụng một cửa sổ lọc( ma trận 3*3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào input
Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3*3 của ảnh gốc” lấp” vào ma trận lọc
Sau đó sắp xếp các điểm ảnh trong cửa sổ này theo thứ thự(tưng dần hoặc giảm dần tùy ý)
Cuối cùng, gán điểm ảnh nằm chính giữa( Trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu ra output
- Kỹ thuật lọc trung vị
Giả sử ta có ảnh I ngưỡng € cửa sổ W(P) và điểm ảnh P
Khi đó kỹ thuật lọc trung vị phụ thuộc không gian bao gồ các bước cơ bản sau:
Bước 1: tìm trung vị trong phần ảnh đang xét( cửa sổ quét qua) { I (q)| q thuộc W(P) } -> Med(P)
Bước 2: gán giá trị cho pixel “tâm”
I ( P ) |I (P )- Med( P)| <= €
I ( P)=
Med ( P) ngược lại VD) cho ảnh sau :
56 54 38 97 75
84 129 35 76 96
Trang 1067 11 9 21 134
Cửa sổ W=( 3*3) giá trị ngưỡng là 85
Giải:
Cửa sổ 3*3 áp vào ma trận
W(p1) = 56 54 38
84 129 35
23 132 8
Tìm Med -> Med(P1) =56 có |129-56|= 73<85 -> I(P1)= 129 W(p2) = 54 28 97
129 35 76
132 8 211
Med(P2)= 97 có |35-97|= 62<85 -> I(p2)=35
W( P3) = 38 97 75
35 76 96
8 211 67
Med(P3) = 75 có | 76-75|=1< 85 -> I(P3)=76
W(P4) = 84 129 35
23 132 8
67 11 9
Med(P4)= 35 có |132-35|=97>85 -> I(P4)=35
Tương tự I(P5)=8 , I(p6)=67, I(p7)=11, I(P8)=9, I(p9)= 21
0 129 35 76 0
10) LỌC TRUNG BÌNH
Trang 11Kỹ thuật lọc trung binh:
- Bước 1: tìm trung bình
{ I(q)|q thuộc W(p)} -> AV(P)
- Bước 2: gán giá trị tâm
I (P) |I (P) – AV(P)| <=0 I(P)=
AV (P) ngược lại VD) lọc ảnh sau cho W( 3*3) € =5
W(P1) AV(P1)= 13 |12-13|=1< 5 -> I(p1)= 12
W(P2) AV(P2)=8 |7-8|=1<5 -> I(p2)=7
W(P3) AV(p3)=16 |11-15|=4 <5 -> I(P3)=11 W(P4) AV(p4)=11 |5-11|=6 >5 -> I(P4)=11
+ Lọc trung bình theo giá trị k gần nhất
- Bước 1; TÌM k giá trị gần nhất
{ I(q) | q thuộc W(p)} -> {k giá trị gần I(P) nhất}
- Bước 2: tính giá trị trung bình
{ k giá trị gần I( P) nhất}
- Bước 3: gán giá trị
I(P) | I(P) – AV(P)| <= 0 I(p) =
AV(P) ngược lại
Trang 12VD cho ảnh sau
23 15 17 11
W(3*3) , €= 7, k=3
AV(p1)=9 | 10-9|=1<7 -> I(P1)=10
AV(p2)=12 | 12-12|=0<7 -> I(P2)=12
AV(p3)=14 | 15-14|=1<7 -> I(P3)=15
AV(p4)=18 | 17-18|=1<7 -> I(P4)=17
9) LÀM TRƠN ẢNH
[b]= [b-w]
Trong đó : W Được chọn là số lẻ ( 3 hoặc 5)
[b] là giá trị tần xuất của độ sáng b sau khi làm trơn [b] là giá trị tần xuất của độ sáng b gốc
VD)
Số mức xám 6
III) cơ sở lý thuyết bài tập tự chọn
Trang 13Đề bài: Giảm nhiễu cho ảnh bằng nhiều bộ lọc với các loại nhiễu khác nhau (Nhiễu muỗi tiêu, nhiễu lốm đốm, nhiễu Gaussian và nhiễu ngẫu nhiên với mật độ nhiễu khác nhau)
1)Lý thuyết nhiễu
- Nhiễu là mọt hiện tượng ngẫu nhiên có mặt trong mọi hệ thống xử lý tín hiệu thực (real signal)
- Có rất nhiều nguồn tạo tạo ra nhiễu, ví dụ như do sự thay đổi độ nhạy của đầu
dò, dò sự biến đổi của môi trường, do sai số lượng tử hóa hay sai số truyền.v.v Nhiễu ảnh sẽ làm chi tiết của quan cảnh trong ảnh sẽ không thích hợp Phân loại nhiễu
a) Nhiễu muối Gaussian
- Là một dạng lý tưởng của nhiễu trắng, được gây ra bơi những dao động ngẫu nhiên của tín hiệu Nhiễu Gaussian là nhiễu trắng có phân bố chuẩn
- Nhiễu này có được do bản chất rời rạc của bức xạ (hệ thống ghi ảnh bằng cách đếm các photon (lượng tử ánh sáng)
- Là nhiễu cộng và độc lập (independent, addtive noise) – nhiễu n(i,j) có phân tán Gauss (trung bình = zezo) được mô tả bởi độ lệch chuẩn hay phương sai
- Nếu ta có ảnh I, nhiễu Gaussian là N ta sẽ có ảnh nhiễu = I + N
- Để tạo ra ảnh với nhiễu Gaussian ta dùng câu lệnh sau:
Img = imnoise(I,’gaussian’)
Trang 14
- Giá trị mặc định của kỳ vọng và phương sai của nhiễu là 0 và 0.01 b) Nhiễu muối tiêu
- Còn gọi là nhiễu xung, nhiễu nhị phân
- Nhiễu này sinh ra do xảy ra sai số trong quá trình truyền dữ liệu
- Những pixel đơn được set luân phiên mang giá trị zero hay giá trị maximum tạo ra hình muối tiêu trên ảnh
- Nếu b > a, mức xám b sẽ xuất hiện tương ứng là điểm sáng trên ảnh còn mức xám a sẽ tương ứng với điểm đen xuất hiện trên ảnh
- Để cộng nhiễu “Salt and pepper” vào một ảnh ta dùng câu lệnh sau :
t = imnoise(image,’salt & pepper’)
Ảnh trước và sau khi thêm nhiễu Gaussian
Trang 15
- Số lượng nhiễu được cộng vào mặc định là 10% Ta có thể cung cấp thêm các thông số để thay đổi lượng nhiễu được cộng vào này c) Nhiễu lốm đốm
- Có thể được mô hình bằng cách nhân các giá trị ngẫu nhiên với giá trị của các pixel Nhiễu Speckle là vấn đề quan tâm chủ yếu trong các ứng dụng radar
- Trong Matlab ảnh với nhiễu Speckle được tính toán : I*(1 + N)
o t = imnoise(t,’speckle’)
Ảnh trước và sau khi thêm nhiễu Muối tiêu
Ảnh trước và sau khi thêm nhiễu lốm đốm
Trang 16- Nhiễu N có phân phối chuẩn với giá trị trung bình =0 Có thể cung cấp thêm thông số để xác định giá trị kỳ vọng của N, giá trị mặc định của nó là 0.04
Nếu tín hiệu hình ảnh là tín hiệu tuần hoàn, chúng ta có thể có ảnh bị ảnh hưởng bởi nhiễu tuần hoàn
- Hàm imnoise không có tùy chọn để tạo ra nhiễu tuần hoàn Ta có thể tạo ra một dạng đơn giản của nhiễu tuần hoàn bằng cách cộng vào ảnh một ma trận tuần hoàn
2) Các bộ lọc sử lý nhiễu
a Bộ lọc trung bình (Mean Filter)
- Lọc trung bình là kĩ thuật lọc tuyến tính, hoạt động như một bộ lọc thông thấp Ý tưởng chính của thuật toán lọc Trung vị như sau: ta sử dụng một cửa sổ lọc (ma trận 3x3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc Giá trị điểm ảnh của ảnh đầu ra là giá trị trung bình của tất cả các điểm ảnh trong cửa sổ lọc Việc tính toán này khá đơn giản với hai bước gồm tính tổng các thành phần trong cửa sổ lọc và sau đó chia tổng này cho số các phần tử của cửa sổ lọc
- Bộ lọc trung bình hiệu quả nhất trong việc khử nhiễu Gaussian nhưng đổi lại là sự mất các chi tiết hình ảnh cao tần Kích thước kernel lớn hơn sẽ có hiệu quả lọc lơn hơn nhưng làm giảm chất lượng hình ảnh nên lọc này không hiệu quả trong việc khử nhiễu ‘salt and pepper’ Một biến thể phổ biến khác của bộ lọc này là tạo một ngưỡng và chỉ thay thế các giá trị điểm ảnh hiện tại với giá trị trung bình của vùng lân cận nếu độ lớn của giá trị trung bình nằm nằm dưới ngưỡng này
- Sơ lược một cách ngắn gọn các bước của giải thuật:
Quét cửa sổ lọc lần lượt lên các thành phần của ảnh đầu vào; điền các giá trị được quét vào cửa sổ lọc
Xử lý bằng cách thao tác trên các thành phần của cửa sổ lọc Tính giá trị trung bình các thành phần trong cửa sổ lọc
Gán giá trị trung bình này cho ảnh đầu ra
b Bộ lọc trung vị (Median Filter)
Trang 17- Lọc Trung vị là một kĩ thuật lọc phi tuyến (non-linear), nó khá hiệu quả đối với hai loại nhiễu: nhiễu đốm (speckle noise) và nhiễu muối tiêu (salt-pepper noise) Kĩ thuật này là một bước rất phổ biến trong
xử lý ảnh
- Ý tưởng chính của thuật toán lọc Trung vị như sau: ta sử dụng một cửa sổ lọc (ma trận 3x3) quét qua lần lượt từng điểm ảnh của ảnh đầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc Sau đó sắp xếp các điểm ảnh trong cửa sổ này theo thứ tự (tăng dần hoặc giảm dần tùy ý) Cuối cùng, gán điểm ảnh nằm chính giữa (Trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu ra output
- Sơ lược một cách ngắn gọn các bước của giải thuật:
Quét cửa sổ lọc lên các thành phần của ảnh gốc; điền các giá trị được quét vào cửa sổ lọc
Lấy các thành phần trong của sổ lọc để xử lý
Sắp xếp theo thứ tự các thành phần trong cửa sổ lọc
Lưu lại thành phần trung vị, gán cho ảnh output
c Bộ lọc Gaussian (Gaussian Filter)
- Ứng dụng của bộ lọc Gaussian là làm mịn ảnh, nó khác với bộ lọc trung bình ở chổ là: thứ nhất,mức độ làm mịn được điều khiển bởi sự lựa chọn các tiêu chuẩn thông số độ lệch, chứ không phải bởi giá trị tuyệt đối của kích thước hạt nhân,thứ 2, hàm Gaussian có một thuộc tính khá đặc biệt, đó là biến đổi Fourier của nó là một hàm Gaussian, điều đó rất thuận tiện cho việc phân tích miền tần số của bộ lọc 3) Giảm nhiễu cho ảnh
Cách làm:
- Đọc ảnh từ file trong máy tính
- Chuyển ảnh thành ảnh xám nếu ảnh đọc vào là ảnh màu và sau đó hiển thị
- Chèn nhiễu (Gaussian, lốm đốm, muối tiêu) vào ảnh xám bằng hàm chèn nhiễu imnoise()
- Dùng các bộ lọc (lọc trung bình, lọc trung vị, lọc Gaussian) để giảm nhiễu cho ảnh Khi lọc thì sử dụng hàm imfilter()
Trang 18- Hiển thị ảnh đã được giảm nhiễu.
a) Giảm nhiễu theo bộ lọc trung bình
b) Giảm nhiễu bằng lọc trung vị
Ảnh nhiễu lốm đốm trước và sau khi lọc
(lọc trung bình)
Ảnh nhiễu muối tiêu trước và sau lọc nhiễu
(lọc trung vị)
Trang 19c) Giảm nhiễu bằng lọc Gaussian.
Ảnh nhiễu Gaussian trước và sau khi lọc nhiễu
(lọc Gaussian)