Thông thường, xử lí ảnh thường được thực hiện trên miền không gian, do tính trực quan cao. Nhưng khi thực hiện trên miền không gian, sẽ không đáp ứng được yêu cầu cao về ảnh. Do đó có các phép biến đổi để chuyển ảnh sang miền khác để xử lí, sau đó biến đổi trở lại miền không gian. Các phép biến đổi đó là biến đổi Fourier, biến đổi Cosin rời rạc
Trang 1I Giới thiệu
Thông thường, xử lí ảnh thường được thực hiện trên miền không gian, do tính trực quan cao Nhưng khi thực hiện trên miền không gian, sẽ không đáp ứng được yêu cầu cao về ảnh Do đó có các phép biến đổi để chuyển ảnh sang miền khác để xử lí, sau đó biến đổi trở lại miền không gian Các phép biến đổi đó là biến đổi Fourier,
biến đổi Cosin rời rạc Em chọn đề tài tập lớn của mình là: Lọc ảnh trên miền tần số (sử dụng biến đổi Fourier) Áp dụng cho ảnh 24 bit để tìm hiểu kĩ hơn về
vấn đề lọc và nâng cao chất lượng ảnh
Cấu trúc của bài báo cáo gồm 3 phần:
1) Giới thiệu bài toán
2) Các vấn đề liên quan và thuật toán
1. Biến đổi Fourier rời rạc và tính chất ảnh trong miền tần số
2. Cơ bản về lọc ảnh trong miền tần số
3. Tìm hiểu các bộ lọc trong miền tần số
3) Các bước cài đăt thuật toán
4) Kết luận
II Các vấn đề liên quan và thuật toán
Để giải quyết bài toán này, em đã tìm hiểu và giải quyết các vấn đề sau:
- Tìm hiểu về biến đổi Fourier rời rạc 1D và 2D(thuận và ngược)
- Tìm hiểu về các thuật toán biến đổi Fourier nhanh
- Ý nghĩa về chuyển đổi ảnh sang miền tần số
- Cơ bản về lọc ảnh trong miền tần số, các bước thực hiện
- Ý nghĩa của các bộ lọc thông thấp, thông cao, thông dải, loại dải
- Tìm hiểu thêm về biến đổi Laplace trong miền tần số, bộ lọc High-frequency emphasis(có ý nghĩa trong xử lí ảnh y tế)
Chi tiết về từng vấn đề như sau
1. Biến đổi Fourier rời rạc và tính chất ảnh trong miền tần số
a. Biến đổi Fourier
Trang 2- Ở đây, ta sẽ tìm hiểu về biến đổi Fourier rời rạc cho tín hiệu 1 chiều và 2 chiều
Biến đổi Fourrier cho một tín hiệu có thể hình dung như sau:
Biến đổi Fourrier cho một tín hiệu một chiều gồm một cặp biến đổi:
- Biến đổi thuận: chuyển sự biểu diễn từ không gian thực sang không gian tần
số (phổ và pha) Các thành phần tần số này được gọi là các biểu diễn trong không gian Fourrier của tín hiệu
- Biến đổi ngược: chuyển đổi sự biểu diễn của đối tượng từ không gian Fourrier sang không gian thực
Khai triển Fourrier rời rạc DFT cho một dãy {x(n), n = 0, 1, , N-1} định nghĩa bởi:
Với :
+ e khoảng 2.71828;
+ i là toạ độ ảo của số phức, với i2= -1
Các hàm cơ sở là chính là các hàm sin, cos vì theo đồng nhất thức Euler ta có:đổi Fourier rời rạc ngược được tính như sau:
Và DFT cho tín hiệu 2 chiều (với ảnh cấp M*N)
Trang 3x i M
x
N y
e y x f v
u
0
1 0
) , ( )
, (
u
N
v
e v u F MN
y x
0
1 0
) , (
1 ) , (
) (
π 2 sin ) (
π 2 cos ) , (
1 ) ,
r
N c
vc ur N j vc ur N c
r I N
v u F
- F(u, v) cũng là số phức:
+ Phần thực tương ứng với các số hạng cosin
+ Phần ảo tương ứng với các số hạng sin
* Phân tích phổ Fourier:
- Thể hiện thành phần phổ phức:
F(u, v) = R(u, v) + jI(u, v),
trong đó R(u, v) là phần thực và I(u, v) là phần ảo,
→ định nghĩa được cường độ và pha của thành phần phổ phức như sau
[ ( , )] [2 ( , )]2
) , (
=
) , (
) , ( tan v) (u,
v u R
v u I
Trang 4- Dữ liệu cường độ chứa thông tin độ tương phản, cường độ sáng.
- Dữ liệu pha chứa thông tin về vị trí của đối tượng nằm trong một ảnh.
sẽ gây ra hiệu ứng làm nhoè ảnh (làm mịn), hoặc thông tin tần số thấp có thể được lược bỏ bằng một bộ lọc thông cao, sẽ có khuynh hướng làm sắc nét ảnh Ta có thể muốn trích chọn thông tin tần số trong các phần cụ thể của phổ bằng bộ lọc thông dải (bandpass filtering) Bộ lọc loại dải (bandreject filtering) có thể được sử dụng để loại bỏ các phần cụ thể của phổ, chẳng hạn để loại bỏ nhiễu không mong muốn
Hãy quan sát công thức sau:
Trang 5 Đây chính là tính khả tách của phép biến đổi Fourier, đươc áp dụng trong biến đổi Fourier nhanh Nếu có một phép biến đổi 2 chiều là phân tách được, thì kết quả có thể tìm được bằng cách áp dụng liên tiếp hai phép biến đổi 1 chiều Ban đầu,trong chương trình của mình, em đã áp dụng phép biến đổi Fourier rời rạc thông thường, nhưng do kết quả quá chậm, nên em đã dùng biến đổi Fourier nhanh, dùng giải thuật của Cooley – Tukey(thuật toán cơ số 2)
Xét DFT N điểm, giả sử N = 2v (N là một lũy thừa của 2):
Trang 6Trong đó: F1(k) và F2(k) lần lượt là DFT N/2 điểm của f1(n) và f2(n) với f1(n) và f2(n) mô tả như sau:
f1(n) = x(2n)
f2(n) = x(2n+1)
Do F1(k) và F2(k) tuần hoàn nên: F1(k) = F1(k + N/2) và F2(k) = F2(k + N/2)và
Nên:
Trang 72. Cơ bản về lọc ảnh trong miền tần số
- Với phép biến đổi Fourier tính đối xứng của phép biến đổi là để lặp lại phổ NxN rời rạc theo mọi hướng cho đến vô vùng Các thành phần phổ chỉ tăng
ở tần số đến số hạng N/2 và sau đó bắt đầu giảm do các thuộc tính đối xứng
liên hợp và có chu kỳ của phép biến đổi Fourier Với kiểu đối xứng này, ta
thường dịch chuyển gốc của phổ đến tâm để dùng cho các mục đích hiển thị
và cho việc lọc Phép dịch chuyển này được thực hiện nhờ sử dụng một tính
chất của phép biến đổi Fourier được gọi là tính chất tịnh tiến tần số, nó sẽ
dịch chuyển gốc của phổ về tâm bằng cách nhân ảnh gốc với (-1) r+c trước khi
đem thực hiện phép biến đổi
Hình sau sẽ minh họa cho phép dịch phổ về tâm
Ảnh gốc Phổ khi chưa dịch tâm Phổ khi dịch tâm
Như là một kết quả của cách thức mà hệ thống thị giác người đáp ứng với độ sáng, ta có thể nâng cao đáng kể thông tin thị giác sẵn có bằng cách hiển thị phép biến đổi logarit của phổ sau đây
G(u, v) = k log[1 + |F(u, v)|]
Nếu không có phép biến đổi Logarit, ta sẽ khó thấy rõ phổ của ảnh Đây
là lỗi em đã mắc phải khi làm bài
Khoảng động thực tế của phổ Fourier lớn hơn rất nhiều so với 256 mức xám bits) sẵn có đối với hầu hết các thiết bị hiển thị ảnh Do đó, khi ta ánh xạ lại nó vào
(8-256 mức xám, ta chỉ có thể thấy các giá trị lớn nhất, thông thường là các số hạng
tần số thấp xung quanh gốc Hàm logarit nén lại dữ liệu, còn hệ số co giãn k dùng
để ánh xạ dữ liệu vào trong khoảng 0-255
- Các bước thực hiện lọc ảnh trong miền tần số(ảnh kích thước M * N)
Trang 81. Nhân đầu vào của ảnh với (-1)x+y để dịch phổ về tâm
ℑ : f(x, y)( −1) x+y → F(u−M/2, v-N/2) m
Chứng minh: Ta có f 1(x, y) = f(x, y).(- 1) x+y
2 2
2
1
N y N i
M x M i y
N N i x
M M
i y
x
e e
e e
×
×
×
× +
x i
N y N i M x M
i N
y M
x i y x
e e
e y x f e
y
x
π π
2
) , ( 1
) ,
(
( − ) × − ( − ) × − − +
y M
x i N N
y i M M
x
e y x
x i N
N
y N y M M
x M x u
e y x
2. Tính DFT F1(u,v) của f1(x,y)
Trang 93. Nhân F1(u,v) với hàm lọc H(u,v) nhận được kết quả G1(u,v)
G 1(u, v) = F 1(u, v)* H(u, v)
4. Tính toán DFT ngược của kết quả ở bước 3, nhận được g1 (x,y)
g 1(x, y) = ℑ−1 (G 1(u, v))
5. Nhận được phần thực cho kết quả ở bước 4
g 2(x, y) = Re ( g 1(x, y) )
6. Nhân kết quả ở bước 5 với (-1)x+y g(x, y) = g 2(x, y)× (-1)x+y
3. Tìm hiểu các bộ lọc trong miền tần số
a. Bộ lọc thông thấp
- Bộ lọc thông thấp lí tưởng:
+ mục đích : làm mịn, trơn ảnh và giảm nhiễu
+ hàm truyền đạt có dạng:
Với : D0≥0, được gọi là tần số cắt , là giao điểm của H(u, v)=1 và H(u,v)=0
D(u, v) là khoảng cách từ điểm (u, v) đến gốc tọa độ tần số, trong đó gốc tọa độ tần số là (u, v)=(M/2, N/2)
D(u, v)= [(u - M/2)2 + (v - N/2)2]1/2
Bộ lọc lý tưởng chỉ ra rằng, tất cả các tần số trong vòng tròn bán kính D0
không bị suy giảm, trong khi đó tất cả các tần số ngoài vòng tròn này hoàn toàn bị suy giảm
Trang 10Đây là kết quả nhận được để khử những gạch sọc
- Bộ lọc ButterWorth thông thấp: Hàm truyền đạt bậc n với quĩ tích tần số cắt tại D 0
Trang 122 0
2( , )/2
) , ( u v e D u v D
Trang 13thấp nhất, bộ lọc lí tưởng không có trong thực tế, bộ lọc Butter Worth là trung gian giữa bộ lọc lí tưởng và bộ lọc Gauss, bộ lọc này có độ dốc gần giống bộ lọc Gauss, nhưng bậc càng cao thì càng dốc
Sau khi thực hiện các phép lọc ảnh với từng bộ lọc, nhận xét tổng quát như sau:
- Mức cắt D0 cang nhỏ, ảnh càng bị mờ, do bộ lọc lấy các thành phần có tần
số thấp
- Với cùng mức cắt D0, bộ lọc Butter Worth cho ảnh mờ hơn bộ lọc Gauss do
bộ lọc Butter Worth dốc hơn, chọn lọc tần số tốt hơn
-b. Các bộ lọc thông cao
Bộ lọc thông cao có thể suy ra từ bộ lọc thông thấp qua biểu thức:
Hhp(u, v)= 1- Hlp(u, v)
Bộ lọc này lấy các thành phần tần số cao, lọc bỏ các thành phần tần số thấp nên
bộ lọc thông cao làm sắc nét ảnh và nổi bật các chi tiết như nhiễu và cạnh biên
Trang 14Lọc thông cao dùng cho nâng cao ảnh thông thường đòi hỏi một số dạng hậu xử
lí, như là cân bằng histogram, để tạo ra một ảnh chấp nhận được
Các bộ lọc thông cao hay dùng là: lọc thông cao lí tưởng, lọc thông cao Butter Worth và lọc thông cao Gauss
Cụ thể cho từng bộ lọc như sau:
-Bộ lọc thông cao lý tưởng:
Trang 15ảnh và phổ sau khi lọc thông cao lí tưởng với D0=10(ảnh gốc 128*128)
- Bộ lọc ButterWorth thông cao:
Trang 16Cũng ảnh gốc và tần số cắt như trên, kết quả với bộ lọc này như sau:
- Lọc thông cao Gauss
Trang 17Kết quả với ảnh gốc và Do như trên:
Cũng tương tự như bộ lọc thông thấp, ta cũng có nhận xét sau:
- Do càng lớn, ảnh sau xử lý càng sắc nét hơn, các chi tiết như cạnh biên và nhiễu càng được
thể hiện rõ
- Cùng một giá trị Do, bộ lọc Butterworth tạo ảnh sắc nét hơn bộ lọc Gauss
c Các bộ lọc thông dải và loại dải
Bộ lọc chắn dải loại bỏ hay làm suy hao một dải băng tần trong biến đổi Fourier ban đầu
Cũng tương tự như các bộ lọc trên, bộ lọc thông dải và loại dải cũng gồm
- Bộ lọc thông dải(loại dải) lí tưởng:
Với bộ lọc loại dải thì giá trj trong khoảng Do-W/2 => Do+W/2 thì H(u,v)=1, ngoài khoảng này là 0
- Bộ lọc thông dải(loại dải) Butter Worth
Trang 18- Bộ lọc thông dải(loại dải) Gauss
bộ lọc thông dải lí tưởng(phần vành khăn trắng là 1)
Trang 19ảnh gốc 257*257 và Do=70; W=20;
d. Biến đổi Laplace trong miền tần số
Ta có biến đổi Fourier của toán tử Laplace
Do đó ta có bộ lọc trong miền tần số như sau:
III. Các bước cài đặt thuật toán:
Trang 20- Trước hết là đọc dữ liệu của ảnh đầu vào
{
int i, j;
GreyImage = new int[Height , Width ]; //[Row,Column]
Bitmap image = Obj;
BitmapData bitmapData1 = image.LockBits(new
Rectangle(0, 0, Width, Height),
- Thực hiện nhân kết quả sau khi biến đổi Fourier với hàm lọc đã chọn
- Biến đổi Fourier ngược và đưa dữ liệu vào ảnh mới, hiển thị ảnh kết quả lên màn hình
Trang 21IV. Kết luận
Hiện tại, em đã thực hiện tìm hiểu và cài đặt được với các bộ lọc như trên Nhưng với 1 số ảnh, nhiễu không phân bố ở dải tần số cao hẳn hay thấp hẳn mà lại phân bố ở 1 số điểm nhỏ lẻ, thì ta có thể xây dựng bộ lọc nào đó loại đi thành phần này thôi không Em đang tiếp tục tìm hiểu vấn
đề này với bộ lọc đánh dấu(Notch) có dạng như sau
Những vấn đề chưa giải quyết được
- Chưa thực hiện cài đặt xử lí với ảnh màu
- Do kiến thức còn hạn chế nên bài tập của em còn rất nhiều sai sót, kính mong thầy tạo điều kiện và giúp đỡ để em có thể học hỏi thêm được nhiều kiến thức và kinh nghiệm hơn nữa