• Nenhum resultado encontrado

Tìm hiểu về các phép lọc số, khảo sát và xây dựng thử nghiệm các ứng dụng của phép lọc trên miền tần số với xử lý ảnh màu.

N/A
N/A
Protected

Academic year: 2021

Share "Tìm hiểu về các phép lọc số, khảo sát và xây dựng thử nghiệm các ứng dụng của phép lọc trên miền tần số với xử lý ảnh màu."

Copied!
47
0
0

Texto

(1)

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO BÀI TẬP LỚN

Môn học: Xử lý ảnh

ĐỀ TÀI:

Tìm hiểu về các phép lọc số, khảo sát và xây dựng thử nghiệm

các ứng dụng của phép lọc trên miền tần số với xử lý ảnh màu.

Giáo viên hướng dẫn: PGS.TS.

Nguyễn Thị Hoàng Lan

Sinh viên thực hiện:

Nguyễn Khánh Hưng

20081279 TTM-K53

Nguyễn Lê Hoài Nam

20081819 TTM-K53

Phan Văn Trường

20082846 TTM-K53

(2)

LỜI GIỚI THIỆU ... 4

I.

KHÁI QUÁT VỀ ẢNH, ẢNH SỐ ... 5

II.

TÌM HIỂU VỀ CÁC PHÉP LỌC SỐ ... 7

1.

Khái quát về phép lọc ảnh ... 7

2.

Các bộ lọc số ... 7

2.1.

Định nghĩa và mô hình ... 7

2.2.

Phân loại bộ lọc ... 8

2.3.

Các bộ lọc thông dụng ... 9

2.3.1.

Bộ lọc trung bình ... 9

2.3.2.

Lọc thông thấp ... 10

2.3.3.

Lọc đồng hình (Homomorphic Filtering) ... 11

III.

KHẢO SÁT VÀ XÂY DỰNG THỬ NGHIỆM CÁC ỨNG DỤNG

CỦA PHÉP LỌC TRÊN MIỀN TẦN SỐ. ... 12

1.

Cơ sở lý thuyết ... 12

1.1.

Hạn chế của xử lý ảnh trên miền không gian ... 12

1.2.

Phép biến đổi Fourier và miền tần số ... 13

1.3.

Phép biến đổi Fourier rời rạc - DFT ... 14

1.4.

Biến đổi Fast Fourier (FFT) ... 25

2.

Ứng dụng của phép lọc trên miền tần số ... 31

2.1.

Làm trơn ảnh ... 32

2.1.1.

Lọc tần số thấp Ideal ... 32

2.1.2.

Lọc tần số thấp Butterworth ... 34

(3)

2.2.

Làm sắc ảnh ... 35

2.2.1.

Lọc tần số cao Ideal ... 36

2.2.2.

Lọc tần số cao Butterworth ... 36

2.2.3.

Bộ lọc tần số cao Gauss ... 37

3.

Xây dựng thử nghiệm các ứng dụng của phép lọc trên miền tần số

37

3.1.

Giao diện ... 37

3.2.

Cài đặt ... 38

3.3.

Chức năng và sử dụng... 39

3.4.

Thử nghiệm ứng dụng ... 40

IV.

KẾT LUẬN ... 45

PHÂN CHIA CÔNG VIỆC ... 46

(4)

LỜI GIỚI THIỆU

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Xử lý ảnh là một quá trình liên tục. Đầu tiên là thu nhận ảnh từ camera, vệ tinh hay các bộ cảm ứng,…Tiếp theo tín hiệu lấy vào sẽ được số hóa thành tín hiệu số và chuyển qua giai đoạn xử lý, phân tích hay lưu trữ lại. Việc xử lý ảnh chính là tăng cường ảnh, tức là làm cho ảnh trở nên đẹp hơn, tốt hơn và rõ hơn. Có nhiều phương pháp cải thiện chất lượng ảnh nhưng ở đây chúng tôi chủ yếu tập trung nghiên cứu về các phương pháp lọc ảnh. Tuy đã cố gắng hết sức nhưng bài viết chắc chắn không thể tránh khỏi những sai sót. Vì vậy rất mong cô góp ý bổ sung giúp chúng tôi hoàn thiện đề tài.

Nhóm sinh viên:

Nguyễn Khánh Hưng Nguyễn Lê Hoài Nam Phan Văn Trường

(5)

I. KHÁI QUÁT VỀ ẢNH, ẢNH SỐ

Ảnh có thể được hiểu là thông tin (về đường nét, hình khối, màu sắc…) của vật thể hay quang cảnh được chiếu sáng mà con người cảm nhận và quan sát được bằng mắt và hệ thống thần kinh thị giác..

Đối tượng chính của xử lý ảnh chính là ảnh chụp tự nhiên. Quá trình xử lý ảnh được hiểu là xử lý nội dung thông qua dữ liệu ảnh, qua đó nâng cao chất lượng ảnh hiển thị hay đạt được một yêu cầu cảm quan nào đó.

Ảnh thông thường được hiểu là dữ liệu trên một mặt phẳng ảnh, ta còn gọi là ảnh đơn (Image), hay ảnh tĩnh. Ngoài ảnh đơn, ta còn gặp dạng chuỗi các ảnh được chụp liên tiếp nhau thông qua mối quan hệ về thời gian, ảnh đó gọi là chuỗi ảnh, (hay ảnh động, phim). Ở đây ta chỉ quan tâm đến đối tượng là ảnh đơn. Ảnh đơn biểu diễn dữ liệu ảnh thông qua (các) hàm độ chói của các biến tọa độ trong mặt phẳng ảnh: I(x,y)

Đối với ảnh đơn màu, hay ảnh đa mức xám, dữ liệu ảnh được biểu diễn dưới dạng một hàm độ chói I(x,y). Với các giá trị I(x,y), x, y là các số thực, và ta có 0 ≤ I(x,y) ≤ LMAX. Với ảnh màu, dữ liệu ảnh được biểu diễn thông qua 3 hàm độ chói

của 3 màu cơ bản R (đỏ), G (xanh lá), B (xanh lam): IR(x,y), IG(x,y) , IB(x,y).

Ảnh số là một dạng biểu diễn, lưu trữ và thể hiện ảnh tĩnh. Ảnh số thực chất là ảnh chụp (mặt phẳng ảnh gồm vô số điểm với vô số các giá trị màu khác nhau) thông qua quá trình lấy mẫu (rời rạc hóa về không gian) và lượng tử hóa (rời rạc hóa về mặt giá trị dữ liệu). Ảnh số được biểu diễn dưới dạng một ma trận điểm ảnh I[m,n] (m ϵ [0..M], n ϵ [0..N]) , mỗi phần tử của ma trận đó gọi là một điểm ảnh – pixel. Trong đó giá trị của mỗi điểm ảnh lại phụ thuộc vào từng loại ảnh:

Ảnh nhị phân: một điểm ảnh chỉ nhận 2 mức giá trị nên cần 1 bit lưu trữ. Ảnh đa mức xám: giá trị điểm ảnh được chia thành 256 mức [0..255] nên ta cần 8 bits/pixel.

Với ảnh màu: tùy thuộc vào số lượng màu, chất lượng màu mà ta cần 8, 16, 24 bits/pixel. Với hệ màu cơ bản RGB ta cần 3*8 = 24 bits/pixel.

(6)

Một bức ảnh số được biểu diễn bởi một ma trận điểm ảnh I[m,n], trong đó một điểm ảnh được đặc trưng bởi tọa độ [m, n] và giá trị màu I. Như vậy, các phép xử lý ảnh có thể tác động vào tọa độ của các điểm ảnh, làm thay đổi vị trí của các điểm ảnh, hình khối trong ảnh, ta gọi đó là các phép xử lý về hình học. Bên cạnh tác động vào tọa độ của các điểm ảnh, các phép xử lý ảnh cũng có tác động đến giá trị màu I của các điểm ảnh, ta gọi đó là các phép xử lý về nội dung. Nhìn chung các phép xử lý hình học không làm thay đổi nội dung của ảnh và được ứng dụng phổ biến trong quá trình hiển thị hình ảnh. Các phép xử lý về nội dung tác động làm thay đổi các thành phần về mặt giá trị màu của điểm ảnh, từ đó mang lại những hiệu quả về cảm nhận khác nhau.

Các phép xử lý về nội dung được biêu diễn thông qua mô hình như sau:

X[m, n] là ma trận điểm ảnh ban đầu, sau quá trình xử lý dữ liệu F, ta

nhận được ma trận điểm ảnh Y[m, n]. Tùy thuộc vào F mà ta có ma trận kết quả Y[m, n] khác nhau.

Việc xử lý ảnh màu cũng như xử lý ảnh đa mức xám. Với ảnh màu chúng ta xử riêng 3 màu cơ bản R (đỏ), G (xanh lá), B (xanh lam): IR(x,y), IG(x,y) , IB(x,y).

Xử lý dữ liệu

ảnh (F)

(7)

II. TÌM HIỂU VỀ CÁC PHÉP LỌC SỐ 1. Khái quát về phép lọc ảnh

Phép lọc ảnh được sử dụng nhiều trong xử lý ảnh, được dùng trong giảm nhiễu, làm nét ảnh, cũng như trong phát hiện cạnh, biên ảnh. Các phép lọc ảnh chủ yếu được sử dụng để ngăn chặn các tần số cao trong hình ảnh, như làm mịn ảnh hay tần số thấp như phát hiện cạnh trong hình ảnh. Các bộ lọc có thể chia làm 2 loại theo phép toán : lọc tuyến tính và lọc phi tuyến. Phép lọc tuyến tính là các phép lọc có bản chất là lọc tần số như lọc trung bình, lọc thông thấp, lọc thông cao, lọc đạo hàm. Ngược lại các phép lọc phi tuyến bao gồm lọc trung vị, lọc đồng hình, lọc với k láng giềng gần nhất, lọc hạng r ….

Các phép lọc ảnh đều sử dụng cách xử lý cục bộ, tức là điểm ảnh đầu ra chỉ chịu ảnh hưởng của 1 số điểm ảnh lân cận theo kĩ thuật mặt nạ. Người ta cũng sử dụng phép nhân chập rời rạc để thực hiện bộ lọc.

Lọc không gian thông thường được thực hiện để khử nhiễu hoặc thực hiện một số kiểu nâng cao ảnh.

2. Các bộ lọc số

2.1. Định nghĩa và mô hình

Một hình ảnh có thể được lọc trong miền tần số hoặc trong miền không gian. Trong kĩ thuật lọc miền không gian ta sử dụng một mặt nạ, tổ hợp điểm ảnh từ ảnh hưởng của các điểm lân cận. Trong miền không gian ta sẽ dùng phép nhân chập tín hiệu ảnh đầu vào với bộ lọc số :

Y(m, n) = H(k, l) * X(m, n) Với K * L << M * L Ma trận lọc H:

(8)

Ma trận bộ lọc còn được gọi là ma trận hạt nhân. Các ma trận hạt nhân có thể có nhiều kích thước tùy ý, phổ biến nhất là ma trận 3*3 (hình 1), ngoài ra trong các trường hợp cụ thể có thể sử dụng các bộ lọc 5*5 hay 7*7. Bộ lọc trong miền không gian với ma trận hạt nhân khá trực quan và dễ thực hiện. Nó phù hợp với cảm quan của chúng ta. Tuy nhiên cũng chính vì khá đơn giản nên nó không có được sự tinh tế. Mặt nạ thường có các giá trị dương và đối xứng, nhưng không nhất thiết phải như vậy. Nó có thể được chọn theo một phương pháp nào đó mà không thể trực quan và một trong các phương pháp đó là lọc trên miền tần số .

Phương pháp lọc trên miền tần số đơn giản là thực hiện các phép biến đổi ảnh trên miền tần số. Các tín hiệu đầu vào, đầu ra của ảnh, các bộ lọc đều được biến về miền tần số.

Y(u, v) = X(u, v) * H(u, v) Với Y(u, v) = DFT(Y(m, n));

X(u, v) * H(u, v) = DFT (X(m,n ) * H(k,l))

Bộ lọc trên miền tần số có 2 loại là bộ lọc thông thấp và thông cao. Bộ lọc thông thấp thường được sử dụng để làm mờ ảnh, giảm nhiễu, bộ lọc thông cao thì được sử dụng để làm sắc nét cạnh, biên làm cho ảnh rõ nét hơn. Thực ra bản chất của phép lọc số đều sử dụng lọc tần số, chỉ là thực hiện trên miền không gian hay miền tần số mà thôi.

2.2. Phân loại bộ lọc

Gồm có 2 loại:

(9)

- Bộ lọc đáp ứng xung vô hạn (IIR)

2.3. Các bộ lọc thông dụng 2.3.1. Bộ lọc trung bình

Các bộ lọc trung bình thường được sử dụng để giảm nhiễu trong một hình ảnh. Tuy nhiên, nó giải quyết được vấn đề tốt hơn.

Nguyên lý:

Mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận:

Với a(k, l) = 1/Nw, trong số Nw là số điểm trong cửa sổ. Giá trị mới của điểm

ảnh được thay bằng trung bình cộng các điểm rơi vào cửa sổ W

Nếu điểm ảnh được thay thế bằng trung bình cộng của điểm đó với trung bình cộng của 4 điểm lân cận kề, ta có:

(10)

Hình 2:Ma trận đầu vào

Trên hình 2, giá trị pixel trung tâm không đại diện cho các điểm xung quanh nó, vì vậy ta sẽ thay thế bằng giá trị trung bình của các điểm lân cận:

Điểm lân cận: 124, 126, 127, 125, 123, 119, 115, 120, 150 Giá trị trung bình: 124 +126+127+125+123 + 119 +115 +120+150

9 = 125

Như vậy giá trị 150 sẽ được thay thế bởi giá trị trung bình 125. Ở đây sử dụng cửa sổ 3 x 3. Nếu dùng cửa sổ lớn hơn sẽ tạo ảnh có độ mịn hơn.

2.3.2. Lọc thông thấp

Lọc thông thấp thường được sử dụng để làm trơn nhiễu.

Với kỹ thuật lọc trên miền không gian người ta hay dùng một số mặt nạ lọc có dạng sau:

Ta dễ dàng nhận thấy khi b = 1, Hb chính là mặt nạ lọc Ht1 (lọc trung bình).

Để hiểu rõ hơn bản chất khử nhiễu cộng của bộ lọc này, ta viết lại phương trình thu nhận ảnh dưới dạng:

(11)

Trong đó η[m, n] là nhiễu cộng có phương sai σ2

n. Như vậy, theo cách tính của

lọc trung bình ta có:

Như vậy nhiễu cộng trong ảnh đã giảm đi Nw lần. 2.3.3. Lọc đồng hình (Homomorphic Filtering)

Kỹ thuật lọc này hiệu quả với ảnh có nhiễu nhân. Thực tế, ảnh quan sát được gồm ảnh gốc nhân với một hệ số nhiễu. Gọi X*(m, n) là ảnh thu được, X(m, n) là ảnh gốc và η(m, n) là nhiễu, như vậy:

X(m, n) = X*(m,n) * η(m, n)

Lọc đồng hình thực hiện lấy logarit của ảnh quan sát. Do vậy ta có kết quả sau: log(X(m, n)) = log(X*(m,n)) + log(η(m, n))

Rõ ràng, nhiễu nhân có trong ảnh sẽ bị giảm. Sau quá trình lọc tuyến tính, ta chuyển về ảnh cũ bằng phép biến đổi hàm e mũ.

2.3.4. Lọc thông cao

Lọc thông cao dùng làm nổi bật các chi tết có tần số thấp. Các phần tử có tần số không gian cao sẽ sáng hơn, còn các phần tử có tần số không gian thấp sẽ đen. Kỹ thuật lọc thông cao cũng được thực hiện nhờ thao tác nhân chập. Các mặt nạ hay được dùng như:

(12)

III. KHẢO SÁT VÀ XÂY DỰNG THỬ NGHIỆM CÁC ỨNG DỤNG CỦA PHÉP LỌC TRÊN MIỀN TẦN SỐ.

1. Cơ sở lý thuyết

1.1. Hạn chế của xử lý ảnh trên miền không gian

Phần trên chúng ta đã nêu những ứng dụng của phương pháp lọc trên miền không gian. Biện pháp xử lý ảnh trên miền không gian là khá trực quan.Trên miền không gian, độ xám tại một pixel trong ảnh mới bằng một biểu thức tuyến tính giữa độ xám của các pixel kế cận trong ảnh cũ. Như vậy, để làm các chi tiết trên ảnh trơn hơn, ta có thể tính độ xám tại pixel (x,y) trên ảnh mới bằng trung bình cộng độ xám của chính nó và 8 pixel lân cận trong ảnh cũ.

𝑔(𝑥, 𝑦) = 1

9∑ 𝑓(𝑥 + 𝑖, 𝑦 + 𝑖) 1

𝑖,𝑗=−1 (1.1)

Nếu muốn làm các chi tiết trên ảnh nối bật hơn, ta có thể tính độ xám tại pixel (x, y) trên ảnh mới bằng một trung bình có trọng số độ xám của chính nó và 8 pixel lân cận trong ảnh cũ, trong đó trọng số ứng với f(x,y) là lớn nhất, chẳng hạn:

𝑔(𝑥, 𝑦) = 1

10(𝑓(𝑥 − 1, 𝑦 − 1) + 𝑓(𝑥, 𝑦 − 1) + 𝑓(𝑥 + 1, 𝑦 − 1) + 𝑓(𝑥 − 1, 𝑦) +

2𝑓(𝑥, 𝑦) + 𝑓(𝑥 + 1, 𝑦) + 𝑓(𝑥 − 1, 𝑦 + 1) + 𝑓(𝑥, 𝑦 + 1) + 𝑓(𝑥 + 1, 𝑦 + 1)) (1.2)

Nói tóm lại, xử lý ảnh trên miền không gian là một phương pháp rất trực quan, phù hợp với cảm giác tự nhiên của chúng ta: nhìn vào các biểu thức (1.1) và (1.2), ta cũng hình dung được phần nào về ảnh kết quả.

Tuy nhiên, cũng chính do tính đơn giản như trên mà phương pháp xử lý ảnh trên mà phương pháp xử lý trên miền không gian là không được tinh tế. Chẳng hạn hệ số của mặt nạ (filter mask) thường được chọn là dương.

Dĩ nhiên, trong một số trường hợp, mặt nạ có thể chứa các hệ số âm. Một thí dụ khác là các mặt nạ thường là ma trận đối xứng. Hiển nhiên ta thấy rằng mặt nạ không nhất thiết phải là ma trận đối xứng. Hơn nữa, các hệ số của mặt nạ cũng không nhất thiết nguyên hay hữu tỷ. Đối với các trường hợp như vậy, các hệ số phải được chọn bằng một phương pháp nào đó, chứ không còn bằng trực quan như trước đây.

(13)

Phương pháp xử lý ảnh trên miền tần số là một trong số đó. Sự can thiệp sâu sắc của toán học cho ta những đối tượng, những đại lượng ẩn dưới lớp vỏ trực quan của ảnh. Do đó, nếu chỉ đơn thuần quan sát, phân tích ảnh bằng thị giác thì ta không dễ gì cảm nhận được các đại lượng này. Thay vì thao tác trực tiếp trên độ xám của các pixel (trường độ xám), ta sẽ thao tác, xử lý trên các đối tượng mới này.

1.2. Phép biến đổi Fourier và miền tần số

Biến đổi Fourrier cho một tín hiệu có thể hình dung như sau:

Phép biển đổi Fourier đi từ miền không gian (liên tục hay rời rạc) tới miền tần số luôn luôn liên tục. Khai triển phân tích một hàm f của trường độ xám bất kì thành tổng của vô hạn các sóng dạng sin hay cos. Một sóng có tần số càng cao thì dao động càng dày đặc gây nên sự biến đổi đột ngột giá trị của f. Chính các thành phần này gây sự xáo trộn mạnh mẽ cho giá trị của hàm f do đó làm giảm tính trơn của f. Mặt khác tín hiệu nhiễu là tín hiệu có biên độ thấp và tần số cao. Vì tính chất này nên Fourier đã được ứng dụng vào lọc ảnh trên miền tần số.

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 Fourier sang không gian thực.

 Không gian một chiều

Cho một hàm f(x) liên tục. Biến đổi Fourrier của f(x), kí hiệu F(u), u biểu diễn tần số không gian, được định nghĩa:

trong đó:

f(x): biểu diễn biên độ tín hiệu e-2πixu : biểu diễn pha.

(14)

Biến đổi ngược của F(u) cho f(x) được định nghĩa:

 Không gian hai chiều

Cho f(x,y) hàm biểu diễn ảnh liên tục trong không gian 2 chiều, cặp biến đổi Fourier cho f(x,y) được định nghĩa:

- Biến đổi thuận

u, v biểu diễn tần số - Biến đổi ngược

1.3. Phép biến đổi Fourier rời rạc - DFT

Ý tưởng của việc áp dụng khai triển Fourier nằm ở chỗ ta muốn phân tích một hàm hai biến f = f(x, y) bất kì thành tổng của vô hạn các sóng dạng sin hay cos. Tuy nhiên, không nhất thiết chỉ có khai triển Fourier mới cho ta một cách phân tích như vậy. Hơn nữa, trường độ xám f mà ta đang xét là hàm bậc thang, tức là có hữu hạn giá trị nên f hoàn toàn có thể được phân tích thành sóng một cách đơn giản hơn. Ta bắt đầu xét cách phân tích “đơn giản hơn” này dưới dạng một chiều để thấy rõ ý tưởng.

Gọi g là một hàm có miền xác định rời rạc như sau g: {0,1,….,M – 1}→ R Khi đó hàm G:{0,1,...,M – 1}→C xác định bởi 𝐺(𝑢) = ∑ 𝑔(𝑥)𝑒−𝑖2𝜋𝑢𝑥𝑀 𝑀−1 𝑥=0 (1.3) Được gọi là biến đổi Fourier rời rạc (DFT) của g.

Công thức (1.3) cho thấy mỗi hàm rời rạc g đều có DFT. Hơn nữa, khi biết DFT của g là G, ta có thể tìm ngược trở lại g bằng công thức:

(15)

𝑔(𝑥) = 1 𝑀∑ 𝐺(𝑢)𝑒 𝑖2𝜋𝑢𝑥𝑀 𝑀−1 𝑢=0 (1.4)

Công thức (1.3) và (1.4) cho thấy sự tương ứng 1 – 1 giữa một hàm rời rạc và DFT của nó. Khi biết g ta có thể tìm được G và ngược lại. Tuy nhiên, điều đặc biệt lại nằm ở công thức (1.4). Ta biết rằng:

𝑒𝑖𝜃 = 𝑐𝑜𝑠𝜃 + 𝑖 𝑠𝑖𝑛𝜃

Nên (1.4) được viết lại như sau: 𝑔(𝑥) = 1 𝑀∑ 𝐺(𝑢) (𝑐𝑜𝑠 2𝜋𝑥𝑢 𝑀 + 𝑖 𝑠𝑖𝑛 2𝜋𝑥𝑢 𝑀 ) (1.5) 𝑀−1 𝑢=0

Vì G là hàm nhận giá trị phức nên ta có thể biểu diễn nó dưới dạng G(u) = R(u) – i I(u) ∀𝑢 ∈ {0,1, … , 𝑀 − 1} Trong đó R và I chỉ nhận các giá trị thực. Thế vào (1.5), ta được

𝑔(𝑥) = 1 𝑀∑ (𝑅(𝑢) − 𝑖 𝐼(𝑢))(cos 2𝜋𝑥𝑢 𝑀 + 𝑖 sin 2𝜋𝑥𝑢 𝑀 ) 𝑀−1 𝑢=0 Hay 𝑔(𝑥) = 1 𝑀∑ (𝑅(𝑢)cos 2𝜋𝑥𝑢 𝑀 − 𝐼(𝑢) sin 2𝜋𝑥𝑢 𝑀 )) 𝑀−1 𝑢=0 + 𝑖 1 𝑀∑ (𝑅(𝑢) sin 2𝜋𝑥𝑢 𝑀 − 𝐼(𝑢)cos 2𝜋𝑥𝑢 𝑀 ) 𝑀−1 𝑢=0

Vì g chỉ nhận giá trị thực nên phần ảo ở hai vế bằng 0. Do đó 𝑔(𝑥) = 1 𝑀 ∑ (𝑅(𝑢)cos 2𝜋𝑥𝑢 𝑀 + 𝐼(𝑢) sin 2𝜋𝑥𝑢 𝑀 ) 𝑀−1 𝑢=0 (1.6)

(16)

Rõ ràng (1.6) là một sự phân tích hàm g thành tổng của các sóng sin hay cos. Chú ý rằng tổng ở đây là tổng hữu han, chứ không phải tổng vô hạn (chuỗi) như khai triển Fourier mà ta đã xét ở mục trước.

Mỗi sóng thành phần là 𝑅(𝑢)cos2𝜋𝑥𝑢

𝑀 và 𝐼(𝑢) sin 2𝜋𝑥𝑢

𝑀 . Ứng với mỗi u, các

sóng này đều có chu kì là 𝑀

𝑢, tức là có tần số là 𝑢

𝑀. Do đó, khi u càng lớn (tức là càng

gần M) thì tần số dao động của các sóng này càng cao. Tiếp theo, ta xét biên độ của các sóng này. Từ (1.3), ta có 𝑅(𝑢) = ∑ 𝑔(𝑥)𝑐𝑜𝑠2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 (1.7) 𝐼(𝑢) = ∑ 𝑔(𝑥)𝑠𝑖𝑛2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 (1.8) Vì 𝑅(𝑢)cos2𝜋𝑥𝑢 𝑀 và 𝐼(𝑢) sin 2𝜋𝑥𝑢 𝑀 là hai sóng cùng tần số (sóng kết hợp) nên

tổng hợp của hai sóng này cũng có dạng sin hoặc cos. Do G(u) = R(u) –i I(u) Nên |𝐺(𝑢)| = √𝑅2(𝑢) + 𝐼2(𝑢) Vì vậy 𝑅(𝑢)cos2𝜋𝑥𝑢 𝑀 + 𝐼(𝑢) sin 2𝜋𝑥𝑢 𝑀 = |𝐺(𝑢)|( 𝑅(𝑢) √𝑅2(𝑢) + 𝐼2(𝑢)𝑐𝑜𝑠 2𝜋𝑥𝑢 𝑀 + 𝐼(𝑢) √𝑅2(𝑢) + 𝐼2(𝑢)𝑠𝑖𝑛 2𝜋𝑥𝑢 𝑀 ) Gọi 𝛼𝑢 ∈ (−𝜋, 𝜋] là góc thỏa { 𝑐𝑜𝑠𝛼𝑢 = 𝑅(𝑢) √𝑅2(𝑢)+𝐼2(𝑢) 𝑠𝑖𝑛𝛼𝑢 = 𝐼(𝑢) √𝑅2(𝑢)+𝐼2(𝑢) Khi đó 𝑅(𝑢)𝑐𝑜𝑠2𝜋𝑥𝑢 𝑀 + 𝐼(𝑢)𝑠𝑖𝑛 2𝜋𝑥𝑢 𝑀 = |𝐺(𝑢)| (𝑐𝑜𝑠𝛼𝑢𝑐𝑜𝑠 2𝜋𝑥𝑢 𝑀 + 𝑠𝑖𝑛𝛼𝑢𝑠𝑖𝑛 2𝜋𝑥𝑢 𝑀 ) = |𝐺(𝑢)|cos (2𝜋𝑥𝑢 𝑀 + 𝛼𝑢) Do đó (1.6) được viết lại như sau

(17)

𝑔(𝑥) = 1 𝑀∑ |𝐺(𝑢)|cos ( 2𝜋𝑥𝑢 𝑀 + 𝛼𝑢) 𝑀−1 𝑢=0 (1.9)

Công thức (1.9) cho ta thấy g có thể phân tích được thành tổng của M sóng có biên độ dương. Mỗi sóng như vậy có tần số là 𝑢

𝑀 , với 𝑢 ∈ {0,1,2, … , 𝑀 − 1}. Ta

mong muốn rằng khi u càng lớn thì biên độ các sóng trên càng nhỏ. Theo công thức (1.9) thì biên độ của sóng ứng với u = 0 là 1

𝑀|𝐺(0)|. Ở (1.3),

ta có 𝐺(0) = ∑𝑀−1𝑔(𝑥)

𝑥=0 , tức là tổng của g. Ta sẽ chứng mình rằng

|𝐺(𝑢)| ≤ |𝐺(0)|, ∀𝑢 ∈ {0,1, … , 𝑀 − 1} Điều cần chứng minh tương đương với

| ∑ 𝑔(𝑥)𝑒−𝑖2𝜋𝑢𝑥𝑀 𝑀−1 𝑥=0 | ≤ | ∑ 𝑔(𝑥) 𝑀−1 𝑥=0 | Hay ( ∑ 𝑔(𝑥)𝑎𝑥 𝑀−1 𝑥=1 ) 2 + ( ∑ 𝑔(𝑥)𝑏𝑥 𝑀−1 𝑥=1 ) 2 ≤ ( ∑ 𝑔(𝑥) 𝑀−1 𝑥=1 ) 2 (1.10) Với 𝑎𝑥 = 𝑐𝑜𝑠2𝜋𝑢𝑥 𝑀, 𝑏𝑥 = 𝑠𝑖𝑛2𝜋 𝑢𝑥 𝑀

Khai triển 2 vế của (1.10) ta có được bất đẳng thức tương đương: ( ∑ 𝑔(𝑥)𝑎𝑥 𝑀−1 𝑥=1 ) 2 = ∑(𝑔(𝑥)𝑎𝑥)2 𝑁−1 𝑥=1 + ∑ 𝑔(𝑥)𝑔(𝑦)𝑎𝑥𝑎𝑦 𝑥<𝑦 ( ∑ 𝑔(𝑥)𝑏𝑥 𝑀−1 𝑥=1 ) 2 = ∑(𝑔(𝑥)𝑏𝑥)2 𝑁−1 𝑥=1 + ∑ 𝑔(𝑥)𝑔(𝑦)𝑏𝑥𝑏𝑦 𝑥<𝑦 ∑ 𝑔(𝑥)𝑔(𝑦)(𝑎𝑥𝑎𝑦+ 𝑏𝑥𝑏𝑦) ≤ ∑ 𝑔(𝑥)𝑔(𝑦) 𝑥<𝑦 𝑥<𝑦 Áp dụng bất đẳng thức Bunhyakovski-Cauchy-Schwarz, ta có 𝑎𝑥𝑎𝑦+ 𝑏𝑥𝑏𝑦 ≤ √(𝑎𝑥2+ 𝑏 𝑥2)(𝑎𝑦2+ 𝑏𝑦2) Mà 𝑎𝑥2+ 𝑏

(18)

Như vậy, sóng ứng với u = 0 có biên độ lớn nhất. Nếu quan sát kĩ (1.7) và (1.8), ta sẽ phát hiện ra một tính chất đặc biệt nữa của G.

Theo (1.7), thay u bởi M – u ta được 𝑅(𝑀 − 𝑢) = ∑ 𝑔(𝑥)𝑐𝑜𝑠2𝜋𝑥 𝑀 𝑀−1 𝑥=0 (𝑀 − 𝑢) = ∑ 𝑔(𝑥)cos (2𝜋𝑥 −2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 ) = ∑ 𝑔(𝑥)cos2𝜋𝑥𝑢 𝑀 = 𝑅(𝑢) 𝑀−1 𝑥=0

Theo (1.8), thay u bởi M - u, ta được 𝐼(𝑀 − 𝑢) = ∑ 𝑔(𝑥)sin (2𝜋𝑥 𝑀 𝑀−1 𝑥=0 (𝑀 − 𝑢)) = ∑ 𝑔(𝑥)sin (2𝜋𝑥 −2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 ) = − ∑ 𝑔(𝑥)sin (2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 ) = −𝐼(𝑢) Do đó, với mọi 𝑢 ∈ {0,1, … , 𝑀 − 1}, ta có 𝑅(𝑀 − 𝑢) = 𝑅(𝑢) 𝐼(𝑀 − 𝑢) = −𝐼(𝑢) Vì vậy nên |𝐺(𝑀 − 𝑢)| = |𝐺(𝑢)|

Điều đó có nghĩa là đồ thị của |𝐺| đối xứng qua đường thẳng 𝑢 = 𝑀

2.

Do đó, thật ra chỉ cần biết |𝐺(𝑢)| với 0 ≤ 𝑢 ≤ 𝑀

2 là có thể suy ra giá trị của

các |𝐺(𝑢)| với 𝑀 2 ≤ 𝑢 ≤ 𝑀 − 1. Do đó, ta cũng có thể chấp nhận rằng các sóng 1 𝑀|𝐺(𝑢)|cos ( 2𝜋𝑥𝑢 𝑀 + 𝛼𝑢) chỉ

đóng vai trò là nhiễu khi u khá gần 𝑀

2.

Trên đây ta vừa đưa ra một cách biểu diễn sóng cho hàm một biến g. Ở đó, một số sóng đóng góp lớn vào giá trị tổng của G ( khi u gần 0 hoặc gần M), trong khi một số sóng khác chỉ đóng vai trò nhiễu (khi u gần 𝑀

2). Trên tinh thần đó, ta

(19)

Ứng với mỗi 𝑥 ∈ {0,1, … , 𝑀 − 1}, lấy Fourier rời rạc theo biến y của f(x, y) ta được

𝐹1(𝑥, 𝑣) = ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋𝑣𝑦𝑁 𝑁−1

𝑦=0

Tiếp tục lấy Fourier rời rạc theo biến x của 𝐹1(𝑥, 𝑣), ta được 𝐹(𝑥, 𝑣) = ∑ 𝐹1(𝑥, 𝑣) 𝑀−1 𝑥=0 𝑒−𝑖2𝜋𝑢𝑥𝑀 = ∑ 𝑒−𝑖2𝜋 𝑢𝑥 𝑀 𝑀−1 𝑥=0 ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋𝑣𝑦𝑁 𝑁−1 𝑦=0 = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋(𝑢𝑥𝑀+𝑣𝑦𝑁) 𝑁−1 𝑦=0 𝑀−1 𝑥=0

Như vậy, ta có thể biến đổi Fourier rời rạc cho hàm hai biến f(x,y) là 𝐹(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋(𝑢𝑥𝑀+ 𝑣𝑦 𝑁) 𝑁−1 𝑦=0 𝑀−1 𝑥=0 (1.11) với u = 0,1,…,M-1 , v = 0,1,…,N-1.

Tương tự như trường hợp một chiều, ta cũng có thể tìm lại f nếu biết DFT của nó bằng công thức 𝑓(𝑥, 𝑦) = 1 𝑀𝑁 ∑ ∑ 𝐹(𝑢, 𝑣)𝑒 𝑖2𝜋(𝑢𝑥𝑀+𝑣𝑦𝑁) 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.12) Nếu viết 𝐹(𝑢, 𝑣) = 𝑅(𝑢, 𝑣) − 𝑖𝐼(𝑢, 𝑣) Thì (1.12) được viết lại thành 𝑓(𝑥, 𝑦) = 1 𝑀𝑁 ∑ ∑( 𝑁−1 𝑢=0 𝑀−1 𝑢=0 𝑅(𝑢, 𝑣) − 𝑖𝐼(𝑢, 𝑣)(𝑐𝑜𝑠2𝜋 (𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝑖𝑠𝑖𝑛2𝜋 (𝑥𝑢 𝑀 + 𝑦𝑢 𝑁))

(20)

𝑓(𝑥, 𝑦) = 1 𝑀𝑁 ∑ ∑ [𝑅(𝑢, 𝑣)𝑐𝑜𝑠2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝐼(𝑢, 𝑣)𝑠𝑖𝑛2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁)] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 = 1 𝑀𝑁∑ ∑|𝐹(𝑢, 𝑣)| [ 𝑅(𝑢, 𝑣) |𝐹(𝑢, 𝑣)|𝑐𝑜𝑠2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) 𝑁−1 𝑢=0 𝑀−1 𝑢=0 + 𝐼(𝑢, 𝑣) |𝐹(𝑢, 𝑣)|𝑠𝑖𝑛2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁)] Gọi 𝛼𝑢𝑣 ∈ (−𝜋, 𝜋] là góc thỏa { 𝑐𝑜𝑠𝛼𝑢𝑣 = 𝑅(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| 𝑠𝑖𝑛𝛼𝑢𝑣 = 𝐼(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| (1.13) Ta có 𝑓(𝑥, 𝑦) = 1 𝑀𝑁 ∑ ∑|𝐹(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.14) Như vậy, hàm hai biến f cũng được phân tích thành tổng của MN sóng dạng sin hay dạng cos, mà không cần đến khai triển Fourier cho hàm hai biến.

Tiếp theo, ta xét biên độ của các sóng này, tức là |𝐹(𝑢, 𝑣)|. Đẳng thức (1.11) có thể được viết lại thành 𝑅(𝑢, 𝑣) + 𝑖𝐼(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦) [𝑐𝑜𝑠2𝜋 (𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝑖𝑠𝑖𝑛2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁)] 𝑁−1 𝑦=0 𝑀−1 𝑥=0 Do đó 𝑅(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑐𝑜𝑠2𝜋 (𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) 𝑁−1 𝑦=0 𝑀−1 𝑥=0 (1.15) 𝐼(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑠𝑖𝑛2𝜋 (𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) 𝑁−1 𝑦=0 𝑀−1 𝑥=0 (1.16) Từ (1.14) suy ra 𝑅(𝑀 − 𝑢, 𝑁 − 𝑣) = 𝑅(𝑢, 𝑣) Từ (1.15) suy ra

(21)

𝐼(𝑀 − 𝑢, 𝑁 − 𝑣) = −𝐼(𝑢, 𝑣) Do đó

𝑅2(𝑀 − 𝑢, 𝑁 − 𝑣) + 𝐼2(𝑀 − 𝑢, 𝑁 − 𝑣) = 𝑅2(𝑢, 𝑣) + 𝐼2(𝑢, 𝑣)

Hay

|𝐹(𝑀 − 𝑢, 𝑁 − 𝑣)| = |𝐹(𝑢, 𝑣)| (1.17) Như vậy hàm |𝐹|đối xứng qua đường thẳng

{ 𝑢 = 𝑀 2 𝑣 =𝑁 2 Từ (1.11) ta có 𝐹(0,0) = ∑ ∑ 𝑓(𝑥, 𝑦) 𝑁−1 𝑦=0 𝑀−1 𝑥=0

Tức F(0,0) là giá trị tổng của f. Ta chứng minh được rằng 𝐹(0,0) = 𝑚𝑎𝑥|𝐹(𝑢, 𝑣)|

Như vậy, |𝐹(𝑢, 𝑣)| đạt giá trị lớn nhất tại (0, 0). Điều đó có nghĩa là trong các sóng thành phần của f, sóng có biên độ lớn nhất là sóng ứng với (u, v)=(0, 0), và biên độ này bằng giá trị tổng của f.

Dưới đây là biểu đồ độ cao của hàm F(u,v) với 𝑓(𝑥, 𝑦) = {5 𝑛ế𝑢 0 ≤ 𝑢, 𝑣 ≤ 4

0 𝑛ế𝑢 5 ≤ 𝑢, 𝑣 ≤ 15

(22)

Theo Hình 4 thì |𝐹(𝑢, 𝑣)| càng nhỏ khi (u, v) càng gần (𝑀

2, 𝑁

2). Do đó, các

song ứng với (u, v) gần (𝑀

2, 𝑁

2) có biên độ nhỏ (và do đó chỉ đóng vai trò nhiễu), còn

các sóng ứng với (u, v) gần (0, 0), hay (M, 0), hay (0, N), hay (M, N) thì có biên độ lớn. Tiếp theo, ta xét khả năng vận dụng biến đổi DFT hai chiều ở (1.11) và (1.12) vào việc xử lý ảnh. Hàm f giờ đây là trường độ xám, trong đó f(x, y) là độ xám của ảnh tại pixel có tọa độ là (x, y).

Giả sử ta muốn là trơn ảnh, tức là làm trơn hàm f. Công thức (1.14) gợi ý rằng kết quả ảnh g sẽ có dạng 𝑔(𝑥, 𝑦) = 1 𝑀𝑁∑ ∑ 𝐻(𝑢, 𝑣)|𝐹(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.18) Trong đó H(u,v) khá nhỏ khi (u, v) gần (𝑀

2 , 𝑁

2) để làm giảm biên độ của các

nhiễu này. Ở đây, từ giảm có thể hiểu theo nghĩa H(u,v) = 1 khi (u, v) khá gần(0, 0), hoặc (M, 0), hoặc (0, N), hoặc (M, N), còn 0 ≤ 𝐻(𝑢, 𝑣) < 1 khi (u, v) khá gần (𝑀

2 , 𝑁

2) . Để tiện cho việc tính toán sau này, ta dùng phép biến đổi sau

𝐹̃(𝑢, 𝑣) = 𝐹(𝑢 −𝑀 2 , 𝑣 −

𝑁 2) Khi đó|𝐹̃(𝑢, 𝑣)| khá bé khi (u,v) xa (𝑀

2 , 𝑁 2).

Phép biến đổi này tương đương với phép biến đổi trên miền ảnh (tức là đổi ảnh) sau: 𝑓̃(𝑥, 𝑦) = (−1)𝑥+𝑦𝑓(𝑥, 𝑦) Thật vậy, ℑ|𝑓̃(𝑥, 𝑦)| = ℑ[(−1)𝑥+𝑦𝑓(𝑥, 𝑦)] = ∑ ∑ 𝑓(𝑥, 𝑦)(−1)𝑥+𝑦 𝑁−1 𝑦=0 𝑀−1 𝑥=0 𝑒−𝑖2𝜋(𝑢𝑥𝑀+𝑣𝑦𝑁) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒𝑖𝜋(𝑥+𝑦) 𝑁−1 𝑦=0 𝑀−1 𝑥=0 𝑒−𝑖2𝜋(𝑢𝑥𝑀+ 𝑣𝑦 𝑁) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋[𝑀𝑥(𝑢−𝑀2)+𝑁𝑦(𝑣−𝑁2)] 𝑁−1 𝑦=0 𝑀−1 𝑥=0 = 𝐹 (𝑢 −𝑀 2 , 𝑣 − 𝑁 2) = 𝐹̃(𝑢, 𝑣)

(23)

Công thức (1.18) được biến đổi thành 𝑔̃(𝑥, 𝑦) = 1 𝑀𝑁∑ ∑ 𝐻(𝑢, 𝑣)|𝐹̃(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.19) Sự biến đổi này chỉ là sự dời điểm sáng nhất trên |𝐹(𝑢, 𝑣)| từ (0,0) sang (𝑀

2 , 𝑁

2) mà thôi.( Hình 5)

Hình 5: Trước khi dời trục và sau khi dời trục

Ảnh 𝑔̃ thu được ở (1.19) là ảnh kết hợp của ảnh đã được đổi biến. Do đó, ảnh kết quả ứng với f là g phải thỏa mãn:

𝑔̃(𝑥, 𝑦) = (−1)𝑥+𝑦𝑔(𝑥, 𝑦)

Tức là

𝑔(𝑥, 𝑦) = (−1)𝑥+𝑦𝑔̃(𝑥, 𝑦)

Nếu đặt 𝐺(𝑢, 𝑣) = 𝐻(𝑢, 𝑣)𝐹̃(𝑢, 𝑣) thì (1.19) được viết lại thành: 𝑔̃(𝑥, 𝑦) = 1 𝑀𝑁∑ ∑|𝐺(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.20) Trong đó 𝛼𝑢𝑣 được cho bởi (1.13) nhưng thay R và I bằng 𝑅̃ và 𝐼̃

{ 𝑐𝑜𝑠𝛼𝑢𝑣 = 𝑅̃(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| 𝑠𝑖𝑛𝛼𝑢𝑣 = 𝐼̃(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| (1.21)

(24)

𝑔̃̃(𝑥, 𝑦) = 1 𝑀𝑁∑ ∑|𝐺(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼′𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.22)

Trong đó 𝛼′𝑢𝑣 được cho bởi (1.13) nhưng thay F bởi G và thay R và I lần lượt là Re(G) và –Im(G).

𝐺(𝑢, 𝑣) = 𝐻(𝑢, 𝑣)𝐹̃(𝑢, 𝑣) = 𝐻(𝑢, 𝑣)𝑅̃(𝑢, 𝑣) − 𝑖𝐻(𝑢, 𝑣)𝐼̃(𝑢, 𝑣) Nên với giả thiết h(u,v) thực, ta có

𝑅𝑒(𝐺) = 𝐻(𝑢, 𝑣)𝑅̃(𝑢, 𝑣) −𝐼𝑚(𝐺) = 𝐻(𝑢, 𝑣)𝐼̃(𝑢, 𝑣) Do đó 𝑐𝑜𝑠𝛼′𝑢𝑣 =𝐻(𝑢, 𝑣)𝑅̃(𝑢, 𝑣) |𝐺(𝑢, 𝑣)| = 𝐻(𝑢, 𝑣)𝑅̃(𝑢, 𝑣) |𝐻(𝑢, 𝑣)||𝐹̃(𝑢, 𝑣)| 𝑠𝑖𝑛𝛼′𝑢𝑣 =𝐻(𝑢, 𝑣)𝐼̃(𝑢, 𝑣) |𝐺(𝑢, 𝑣)| = 𝐻(𝑢, 𝑣)𝐼̃(𝑢, 𝑣) |𝐻(𝑢, 𝑣)||𝐹̃(𝑢, 𝑣)| Do đó, nếu 𝐻(𝑢, 𝑣) ≥ 0 thì { 𝑐𝑜𝑠𝛼′𝑢𝑣 = 𝑅̃(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| 𝑠𝑖𝑛𝛼′𝑢𝑣 = 𝐼̃(𝑢, 𝑣) |𝐹(𝑢, 𝑣)| (1.23) Từ (1.21) và (1.23) ta suy ra 𝛼′𝑢𝑣 = 𝛼𝑢𝑣 Do đó (1.22) được viết lại thành 𝑔̃̃(𝑥, 𝑦) = 1 𝑀𝑁 ∑ ∑|𝐺(𝑢, 𝑣)|𝑐𝑜𝑠 [2𝜋 ( 𝑥𝑢 𝑀 + 𝑦𝑢 𝑁) + 𝛼𝑢𝑣] 𝑁−1 𝑢=0 𝑀−1 𝑢=0 (1.24)

So sánh với (1.20) ta suy ra 𝑔̃̃(𝑥, 𝑦) = 𝑔̃(𝑥, 𝑦). Điều đó có nghĩa là 𝑔̃ ở (1.19) chính là phần thực của biến đổi DFT ngược của 𝐺(𝑢, 𝑣) = 𝐻(𝑢, 𝑣)𝐹̃(𝑢, 𝑣). Như vậy, với hạn chế rằng hàm lọc H là thực và không âm thì quy trình xử lý ảnh được viết như sau:

1.Đổi ảnh: 𝑓̃(𝑥, 𝑦) = (−1)𝑥+𝑦𝑓(𝑥, 𝑦)

2.Lập biến đổi DFT hai chiều 𝐹̃(𝑢, 𝑣) của 𝑓̃. 3.Tạo một lọc không âm H(u,v).

(25)

*Nếu muốn làm trơn ảnh { 𝐻(𝑢, 𝑣) = 1 𝑛ế𝑢 (𝑢, 𝑣)𝑔ầ𝑛 (𝑀 2 , 𝑁 2) 0 ≤ 𝐻(𝑢, 𝑣) < 1 𝑛ế𝑢 (𝑢, 𝑣)𝑥𝑎 (𝑀 2 , 𝑁 2) *Nếu muốn làm sắc ảnh: { 𝐻(𝑢, 𝑣) = 1 𝑛ế𝑢 (𝑢, 𝑣)𝑥𝑎 (𝑀 2 , 𝑁 2) 0 ≤ 𝐻(𝑢, 𝑣) < 1 𝑛ế𝑢 (𝑢, 𝑣)𝑔ầ𝑛 (𝑀 2 , 𝑁 2) 4.Tính 𝐺(𝑢, 𝑣) = 𝐻(𝑢, 𝑣)𝐹̃(𝑢, 𝑣).

5.Tìm 𝑔̃, là phần thực của biến đổi DFT ngược của G. 6.Ảnh kết quả 𝑔(𝑥, 𝑦) = (−1)𝑥+𝑦𝑔̃(𝑥, 𝑦)

Quy trình xử lý ảnh màu như sau:

Hình 6: Quá trình xử lý ảnh màu trên miền tần số

1.4. Biến đổi Fast Fourier (FFT)

Trên tinh thần đánh giá độ phức tạp của thuật toán, chúng tôi chỉ nêu ý tưởng và phân tích chi phí của thuật toán chứ không đi sâu vào chi tiết của nó. Để thấy ý tưởng của FFT, ta xét trường hợp hai một biến f và với M cái dạng lũy thừa cơ số 2

Giả sử DFT của hàm một biến f là F 𝐹(𝑢) = ∑ 𝑓(𝑥)𝑒−𝑖2𝜋𝑥𝑢𝑀

𝑀−1

𝑥=0

(26)

Biến đổi DFT ngược tương ứng là 𝑓(𝑥) = 1 𝑀∑ 𝐹(𝑢)𝑒 𝑖2𝜋𝑥𝑢𝑀 (1.26) 𝑀−1 𝑢=0

Vấn đề đặt ra là làm sao tính nhanh F(u) với u=0, 1, 2,…, M-1 từ (1.25) nếu biết f(x) với x = 0, 1, 2,…, M-1. Làm sao tính nhanh f(x) với x = 0, 1, 2,…, M-1 từ (1.26) nếu biết F(u) với u = 0, 1, 2,…, M-1.

Vì (1.25) và (1.26) các cấu trúc khá giống nhau nên ta chỉ phân tích (1.25), ta viết lại dưới dạng

𝐹(𝑢) = ∑ 𝑓(𝑥) (𝑐𝑜𝑠2𝜋𝑥𝑢 𝑀 − 𝑖𝑠𝑖𝑛2𝜋 𝑥𝑢 𝑀) 𝑀−1 𝑥=0 Hay 𝐹(𝑢) = ∑ 𝑓(𝑥)𝑐𝑜𝑠2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 − 𝑖 ∑ 𝑓(𝑥)𝑠𝑖𝑛2𝜋𝑥𝑢 𝑀 𝑀−1 𝑥=0 (1.27)

Nếu tính F(u) từ (1.27) thì với mỗi u ta phải tốn ít nhất 2M phép cộng, 2M phép nhân và 2M phép tính lượng giác. Do đó, để tính ra được F(u) với mọi u = 0, 1, 2,…, M-1, ta phải tốn khoảng 2𝑀2 phép cộng, 2𝑀2 phép nhân và 2𝑀2 phép tính

lượng giác. Như vậy, độ phức tạp của phương pháp ở (1.27) là 𝑜(𝑀2). Đó là ta đã

xem như phép tính lượng giác có chi phí ngang với phép cộng và nhân. Thực tế thì các phép tính sin hay cos có chi phí lớn hơn nhiều. Do đó, khuyết điểm ở (1.27) là ta phải tính toán quá nhiều trên các hàm lượng giác. Do đó, khuyết điểm ở (1.27) là ta phải tính toán quá nhiều trên các hàm lượng giác. Công thức (1.25) gợi ý cho ta một giải pháp.

Nếu đặt 𝑊𝑀 = 𝑒−2𝜋𝑖𝑀1 thì (1.27) được viết lại thành

𝐹(𝑢) = ∑ 𝑓(𝑥)𝑊𝑀𝑥𝑢

𝑀−1

(27)

Vì 𝑀 = 2𝑛 nên 𝐹(𝑢) = ∑ 𝑓(𝑥)𝑊𝑀𝑥𝑢 2𝑛−1 𝑥=0 Hay 𝐹(𝑢) = ∑ 𝑓(2𝑥)𝑊𝑀2𝑥𝑢 2𝑛−1−1 𝑥=0 + ∑ 𝑓(2𝑥 + 1)𝑊𝑀(2𝑥+1)𝑢 2𝑛−1−1 𝑥=0 (1.28) Đặt M = 2K với K = 2𝑛−1, thì ta thấy 𝑊𝑀2𝑥𝑢 = 𝑊2𝐾2𝑥𝑢 = 𝑊𝐾𝑥𝑢 Do đó (1.28) được viết lại thành 𝐹(𝑢) = ∑ 𝑓(2𝑥)𝑊𝐾𝑥𝑢 K−1 𝑥=0 + ∑ 𝑓(2𝑥 + 1)𝑊𝑀(2𝑥+1)𝑢 (1.29) K−1 𝑥=0

Nếu số hạng thứ nhất của vế phải (1.29) chỉ được tính với u = 0, 1, 2,…, K-1 thì cấu trúc của nó giống vế phải của (1.25) nhưng f(x) thay bởi g(x) = f(2x).

Với 0 ≤ 𝑢 ≤ 𝑀 − 1, thay u bởi u + K ở (1.29), ta được 𝐹(𝑢 + 𝐾) = ∑ 𝑓(2𝑥)𝑊𝐾𝑥(𝑢+𝐾) K−1 𝑥=0 + ∑ 𝑓(2𝑥 + 1)𝑊𝑀(2𝑥+1)(𝑢+𝐾) (1.30) K−1 𝑥=0 Ta có 𝑊𝐾𝑥(𝑢+𝐾) = 𝑊𝐾𝑥𝑢+𝑥𝐾 = 𝑒−𝑖2𝜋𝑥𝑢+𝑥𝐾𝐾 = 𝑒−𝑖2𝜋 𝑥𝑢 𝐾𝑒−𝑖2𝜋𝑥 = 𝑒−𝑖2𝜋 𝑥𝑢 𝐾 Do đó 𝑊𝐾𝑥(𝑢+𝐾) = 𝑊𝐾𝑥𝑢 (1.31) Ta có 𝑊𝑀(2𝑥+1)(𝑢+𝐾) = 𝑊𝑀(2𝑥+1)𝑢+(2𝑥+1)𝐾 = 𝑒−𝑖2𝜋[ (2𝑥+1)𝑢 𝑀 +(2𝑥+1)𝑀𝐾]

(28)

Hay 𝑊𝑀(2𝑥+1)(𝑢+𝐾) = 𝑒−𝑖2𝜋(2𝑥+1)𝑢𝑀 𝑒−𝑖2𝜋(2𝑥+1) 1 2 = 𝑊𝑀(2𝑥+1)𝑢𝑒−𝑖𝜋(2𝑥+1) = −𝑊𝑀(2𝑥+1)𝑢 Do đó 𝑊𝑀(2𝑥+1)(𝑢+𝐾) = −𝑊𝑀(2𝑥+1)𝑢 (1.32) Thế (1.31) và (2.32) vào (1.30), ta được 𝐹(𝑢 + 𝐾) = ∑ 𝑓(2𝑥)𝑊𝐾𝑥𝑢 K−1 𝑥=0 − ∑ 𝑓(2𝑥 + 1)𝑊𝑀(2𝑥+1)𝑢 K−1 𝑥=0 (1.33)

Vấn đề bây giờ là số hạng thứ hai ở vế phải của (1.29) hay (1.33) vẫn chưa có cấu trúc giống số hạng thứ nhất của nó. Do đó ta cần phải phân tích tiếp số hạng này. Ta thấy 𝑊𝑀(2𝑥+1)𝑢 = 𝑊𝑀2𝑥𝑢+𝑢 = 𝑒−𝑖2𝜋2𝑥𝑢+𝑢𝑀 = 𝑒−𝑖2𝜋( 2𝑥𝑢 2𝐾+ 𝑢 𝑀) Hay 𝑊𝑀(2𝑥+1)𝑢 = 𝑒−𝑖2𝜋2𝑥𝑢2𝐾𝑒−𝑖2𝜋 𝑢 𝑀 Hay 𝑊𝑀(2𝑥+1)𝑢 = 𝑊𝐾𝑥𝑢𝑊𝑀𝑢 (1.34) Thế (1.34) vào (1.29) và (1.33), ta được 𝐹(𝑢) = ∑ 𝑓(2𝑥)𝑊𝐾𝑥𝑢 K−1 𝑥=0 + 𝑊𝑀𝑢∑ 𝑓(2𝑥 + 1)𝑊𝑀𝑥𝑢 K−1 𝑥=0 (1.35) hay 𝐹(𝑢 + 𝐾) = ∑ 𝑓(2𝑥)𝑊𝐾𝑥𝑢 K−1 𝑥=0 − 𝑊𝑀𝑢∑ 𝑓(2𝑥 + 1)𝑊𝑀𝑥𝑢 K−1 𝑥=0 (1.36) Đặt 𝑓1(𝑥) = 𝑓(2𝑥) 𝑣ớ𝑖 0 ≤ 𝑥 ≤ 𝐾 − 1 𝑓2(𝑥) = 𝑓(2𝑥 + 1) 𝑣ớ𝑖 0 ≤ 𝑥 ≤ 𝐾 − 1

(29)

Và gọi 𝐹1(𝑢) và 𝐹2(𝑢) lần lượt là DFT của chúng thì (1.35) và (1.36) được viết lại như sau

𝐹(𝑢) =1 2𝐹1(𝑢) + 1 2𝑊𝑀 𝑢𝐹 2(𝑢) (1.37) 𝐹(𝑢 + 𝐾) = 1 2𝐹1(𝑢) − 1 2𝑊𝑀 𝑢𝐹 2(𝑢) (1.38)

Như vậy, để tính được tất cả các F(u) với u = 0, 1, 2,…, M – 1 thì ta cần phải tính 𝐹1(𝑢), 𝐹2(𝑢) và 𝑊𝑀𝑢.

Nếu gọi 𝑎𝑛 và 𝑚𝑛 lần lượt là số phép cộng và phép nhân cần dùng để tìm F(u) ở (1.25) ứng với M = 2𝑛 thì chi phí tính tất cả các 𝐹 1(𝑢) với u = 0, 1, 2,…, K – 1 là 𝑎𝑛−1+ 𝑚𝑛−1. Chi phí tính tất cả các 𝐹2(𝑢) với u = 0, 1, 2,…, K – 1 là 𝑎𝑛−1+ 𝑚𝑛−1. Để tính F(u) ở (1.37) và (1.38) ta còn phải tính được 𝑊𝑀𝑢 𝑊𝑀𝑢 = 𝑒−𝑖2𝜋𝑀𝑢 = 𝑐𝑜𝑠 (2𝜋 𝑢 𝑀) + 𝑖𝑠𝑖𝑛 (2𝜋 𝑢 𝑀) (1.39)

Nếu dùng (1.39) để tính 𝑊𝑀𝑢 thì ta vẫn phải tốn đến 2 phép tính lượng giác

ứng với mỗi u. Tức là phải tốn 2M phép tính lượng giác để tính được tất cả các F(u). Đó là chi phí lớn mà ta đang muốn né tránh. Ta thấy rằng

𝑊𝑀𝑢+1= 𝑊𝑀𝑢𝑊𝑀

Như vậy, ta chỉ cần dùng 2 phép tính lượng giác để tính được 𝑊𝑀, rồi sau đó dùng phép nhân hai số phức để tính được 𝑊𝑀2, 𝑊 𝑀3, … , 𝑊𝑀𝐾−1. Một phép nhân hai số phức tốn 4 phép nhân số thực và 2 phép cộng số thực. Do vậy, chi phí tính 𝑊𝑀𝑢 ở (1.37) và (1.38) là 4 phép nhân và 2 phép cộng. Do đó, để tính hết tất cả các 𝑊𝑀𝑢 với u = 0, 1,…, K – 1 thì ta phải tốn 4K phép nhân và 2K phép cộng. Như vậy, từ (1.37) và (1.38) ta có 𝑎𝑛 = 2𝑎𝑛−1+ 𝑀 + 2𝐾 𝑚𝑛 = 2𝑚𝑛−1+ 4𝐾 + 2𝐾 Hay 𝑎𝑛 = 2𝑎𝑛−1+ 2. 2𝑛 𝑚𝑛 = 2𝑚𝑛−1+ 4. 2𝑛 Do đó 𝑎𝑛 = 𝐴1𝑛2𝑛 𝑚𝑛 = 𝐴2𝑛2𝑛

(30)

Trong đó 𝐴1 và 𝐴2 là các hằng số. Đo đó chi phí để tìm DFT của f là:

𝑎𝑛+𝑚𝑛 = (𝐴1+ 𝐴2)𝑛2𝑛 = (𝐴

1+ 𝐴2)𝑀(log 𝑀)

Tức là thuật toán có độ phức tạp là 𝑀(log 𝑀).

Rõ ràng chi phí này tốt hơn nhiều so với chi phí 𝑀2 như phương pháp tính

thông thường.

Tiếp theo, ta ứng dụng thuật toán FFT như trên vào trường hợp hai chiều. Giả sử f = f(x,y) là hàm hai biến và F = F(u,v) là DFT của f(x,y)

𝐹(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋(𝑢𝑥𝑀+ 𝑣𝑦 𝑁) (1.40) 𝑁−1 𝑦=0 𝑀−1 𝑥=0 Hay 𝐹(𝑢, 𝑣) = ∑ (∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋𝑣𝑦𝑁 𝑁−1 𝑦=0 ) 𝑒−𝑖2𝜋𝑢𝑥𝑀 𝑀−1 𝑥=0 (1.41) Ứng với mỗi x và v, ta đặt 𝐴𝑥𝑣 = ∑ 𝑓(𝑥, 𝑦)𝑒−𝑖2𝜋𝑣𝑦𝑁 𝑁−1 𝑦=0

Khi đó với mỗi x = 0, 1,…, M – 1 thì 𝐴𝑥𝑣 chính là DFT một chiều của 𝑓𝑥(𝑦) = 𝑓(𝑥, 𝑦). Do đó, chi phí để tính đươc các 𝐴𝑥𝑣 với v = 0, 1,…, N - 1 là NlogN. Công thức (2.41) được viết lại

𝐹(𝑢, 𝑣) = ∑ 𝐴𝑥𝑣𝑒−𝑖2𝜋𝑢𝑥𝑀 𝑀−1

𝑥=0

(1.42)

Như vậy, chi phí để tính được tất cả các 𝐴𝑥𝑣 ở (1.42) là MNlogN.

Tiếp theo, ứng với mỗi v = 0, 1, 2,…, N–1, vế phải của (1.42) chính là DFT của gv(x) = Axv. Do đó, chi phí để tính được tất cả các F(u, v) với u = 0, 1,…, M-1

là MlogM. Do đó chi phí tính tất cả F(u, v) của (1.42) với u = 0, 1, .., M-1 và v = 0,1,…, N-1 là MNlogM. Tóm lại, chi phí tính tất cả các F(u,v) từ f là

𝑀𝑁𝑙𝑜𝑔𝑁 + 𝑀𝑁𝑙𝑜𝑔𝑀 = 𝑀𝑁𝑙𝑜𝑔(𝑀𝑁)

Thuật toán tính DFT ngược hoàn toàn tương tự DFT thuận, tức là cũng có độ phức tạp là 𝑀𝑁𝑙𝑜𝑔(𝑀𝑁). Như vậy FFT có độ phức tạp là 𝑀𝑁𝑙𝑜𝑔(𝑀𝑁). Rõ ràng

(31)

đây là chi phí thấp hơn nhiều so với chi phí của phương pháp xử lý ảnh bằng khai triển Fourier hai chiều .

2. Ứng dụng của phép lọc trên miền tần số

Trong mục này, ta sẽ áp dụng những cơ sở lý thuyết đã lập được ở các mục trên vào bài toán xử lý ảnh cụ thể. Ứng dụng cụ thể mà ta xét ở đây là tăng cường ảnh. Đó là việc làm cho ảnh trở lên tốt hơn, đẹp hơn, hay rõ hơn.Với một ảnh nhòe, ta luôn muốn làm cho nó rõ hơn. Khi đó, tã sẽ lọc lấy những sóng có tần số cao trong miền tần số, vì đây là những sóng thể hiện sự thay đổi đột ngột về độ xám của ảnh. Lúc đó, hàm lọc tần số cao (Highpass filter ) sẽ được dùng.

Tuy nhiên, nhiều khi không phải ảnh nào cũng rõ nét cũng đẹp, chẳng hạn những vật thể mà bản thân nó đã xấu thì ảnh chụp của nó không thể đẹp được. Thậm chí ảnh chụp càng rõ nét thì càng xấu, vì cái xấu đã được soi rất rõ, rất kỹ. Do đó, đối với những ảnh như vậy, ta không mong muốn nó rõ thêm nữa, mà muốn nó mờ đi để che bớt khuyết điểm của vật trong ảnh. Lúc này, ta chỉ giữ lại những sóng với tần số thấp trong miền tần số (Lowpass filter), bỏ đi các sóng có tần số cao thể hiện độ sắc nét của ảnh. Với ta, các sóng này giờ đây chỉ đóng vai trò nhiễu mà thôi. Hơn nữa, ta biết rằng việc muốn làm trơn ảnh hay làm sắc ảnh chỉ khác nhau ở cách chọn hàm lọc. Do đó, đối với bài toán xử lý ảnh cụ thể, hàm lọc phải được xác định một cách tường minh. Đó chính là nguyên nhân ra đời nhiều phương pháp chọn hàm lọc mà ta sẽ nêu dưới đây. Trước hết, ta nhắc lại quy trình xử lý ảnh trên miền tần số:

Lọc sóng trên miền tần số gồm các bước:

1. Nhân ảnh f với (−1)𝑥+𝑦 để tịnh tiến gốc tọa độ của biến đổi vào giữa ảnh.

2. Tính F(u, v) từ ảnh nhận được ở bước 1. 3. Nhân hàm lọc H(u, v) vào hàm F(u, v).

4. Tính Fourier ngược của hàm nhận được ở bước 3. 5. Lấy phần thực của hàm nhận được ở bước 4. 6. Tịnh tiến ảnh lại bằng cách nhân

(−1)

𝑥+𝑦

Nếu f(x, y) biểu diễn ảnh nhập vào, và F(u,v) là biển đổi Fourier của nó. Khi đó miền tần số sau khi lọc là

(32)

Để có được ảnh sau khi lọc, ta chỉ cần lấy Fourier ngược của hàm G(u, v) Ảnh đã lọc = ℑ−1[𝐺(𝑢, 𝑣)] (2.2)

Có hai kiểu lọc cơ bản là lọc tần số thấp, và lọc tần số cao. Lọc tần số thấp nghĩa là làm suy giảm các tần số cao trong khi đó giữ lại các thành phần có tần số thấp. Ngược lại, lọc tần số cao lại giữ lại các tần số cao và làm yếu đi các tần số thấp.

2.1. Làm trơn ảnh

Các tần số thấp trong biến đổi Fourier đóng góp lớn cho mức xám tại những vùng trơn của ảnh. Do đó để làm trơn ảnh ta phải làm mờ đi các đường biên, tức là phải giảm đi các tần số cao. Vì vậy ta phải sử dụng kiểu lọc tần số thấp. Có 3 loại lọc tần số thấp hay được dùng là Ideal, Butterworth, và Gauss.

2.1.1. Lọc tần số thấp Ideal

Đây là cách lọc đơn giản nhất, ta chỉ cần bỏ đi các thành phần tần số trong biến đổi Fourier mà khoảng cách tới tâm lớn hơn một 𝐷0 xác định. Ta gọi đây là lọc

Ideal tấn số thấp (Ideal Lowpass filter, hay viết tắt là ILPF)

𝐻(𝑢, 𝑣) = {1 𝑛ế𝑢𝐷(𝑢, 𝑣) ≤ 𝐷0

0 𝑛ế𝑢𝐷(𝑢, 𝑣) > 𝐷0 (2.3)

Trong đó 𝐷0 là số không âm, và 𝐷(𝑢, 𝑣)là khoảng cách từ điểm (𝑢, 𝑣) tới tâm. Nếu ảnh kích thước 𝑀 × 𝑁 thì tâm của miền tần số là(𝑢, 𝑣) = (𝑀

2, 𝑁

2), vậy nên

𝐷(𝑢, 𝑣) = [(𝑢 − 𝑀/2)2+ (𝑣 − 𝑁/2)2]1/2 (2.4)

Tuy nhiên, con số 𝐷0 không mang đầy đủ ý nghĩa, vì vậy ta cần một tiêu chuẩn để xác định 𝐷0. Để làm như vây, ta xác định lượng năng lượng trong miền

đang xét đối với năng lượng tổng cộng 𝑃𝑇 𝑃𝑇 = ∑ ∑ 𝑃(𝑢, 𝑣) 𝑁−1 𝑣=0 𝑀−1 𝑢=0 (2.5)

(33)

Hình 7: (a) Văn bản bị rỗ. (b)Văn bản sau khi lọc tần số thấp Tỷ lệ phần trăm năng lượng trong đường tròn 𝛼 = 100 [∑ ∑ 𝑃(𝑢, 𝑣)/𝑃𝑇 𝑣 𝑢 ] (2.6) với (u,v) chạy trong miền đó.

Trên hình 7a ta có một văn bản bị lỗi, các ký tự bị vỡ tạo khoảng trống, tuy mắt chúng ta có thể dễ dàng đọc được các kí tự này nhưng máy tính thì việc nhận dạng các ký tự này khá khó khăn. Các để khắc phục các khe hở nhỏ này là làm nhòa ảnh để lấp các khe hở (Hình 7b). Hình 8(a) là một bức ảnh kích thước 500×500 và phổ Fourier của nó là Hình 8(b). Các vòng tròn bán kính lần lượt là 5, 15, 30, 80, và 230, bao quanh vùng chứa năng lượng tương ứng là α= 92.0, 94.6, 96.4, 98, và 99.5%.

(34)

Hình 8: (a) Ảnh với kích thước 500x500. (b) Phổ Fourier của ảnh. Các vòng tròn với bán kính lần lượt là 5, 15, 30, 80, và 230

2.1.2. Lọc tần số thấp Butterworth

Hàm lọc Butterworth tần số thấp (Butterwoth Lowpass Filter, hay BLPF) bậc n với 𝐷0 cho trước được định nghĩa như sau

𝐻(𝑢, 𝑣) = 1

1 + [𝐷(𝑢, 𝑣)/𝐷0]2𝑛 (2.7)

Hình 9:Hàm lọc BLPF

Với 𝐷(𝑢, 𝑣)được định nghĩa như (2.4). Không giống như ILPF là cắt bỏ hoàn toàn các thành phần tần số cao, BLPF chỉ làm giảm cường độ của các thành phần

(35)

tần số, và tần số càng cao thì cường độ càng bị giảm đi nhiều. Ví dụ với D(u, v) = 0 thì 𝐻(𝑢, 𝑣) = 1, nghĩa là thành phần tần số tại tâm không đổi, trong khi 𝐻(𝑢, 𝑣) = 0.5 khi 𝐷(𝑢, 𝑣) = 𝐷0 thì cường độ tại đây giảm đi 50%.

2.1.3. Lọc tần số thấp Gauss

Hình 10: Hàm lọc GLPF

Hàm lọc Gauss (Gauss Lowpass Filter, hay GLPF) được định nghĩa như sau 𝐻(𝑢, 𝑣) = 𝑒−𝐷2(𝑢,𝑣)/2𝐷02 (3.8)

𝐷0 cho thấy sự trải rộng của đường cong Gauss, nghĩa là khi 𝐷0 càng nhỏ thì hàm lọc 𝐻 làm giảm đi các tần số cao mạnh hơn, và ngược lại. Khi 𝐷(𝑢, 𝑣) = 𝐷0 thì cường độ tại đây sẽ giảm còn 0.607 so với ban đầu (Hình 10).

2.2. Làm sắc ảnh

Do các cạnh hay các biên trên vật thể được thể hiện qua các thành phần tần số cao nên ta sử dụng kiểu lọc tần số cao để làm sắc ảnh. Do lọc tần số cao là trái ngược với lọc tần số thấp nên hàm lọc tần số cao có thẻ được tình nhờ quan hệ

𝐻ℎ𝑝(𝑢, 𝑣) = 1 − 𝐻𝑙𝑝(𝑢, 𝑣) (2.9)

Trong đó 𝐻𝑙𝑝(𝑢, 𝑣) là lọc tần số thấp. Phần này ta cũng sẽ nói đến ba loại lọc tần số cao : Ideal, Butterworth, và Gauss.

(36)

2.2.1. Lọc tần số cao Ideal

Hàm lọc tần số cáo Ideal (Ideal Hightpass Filter, hay IHPF) được định nghĩa như sau

𝐻(𝑢, 𝑣) = {0 𝑛ế𝑢𝐷(𝑢, 𝑣) ≤ 𝐷0

1 𝑛ế𝑢𝐷(𝑢, 𝑣) > 𝐷0 (2.10)

Hình 11: Hàm lọc IHPF

2.2.2. Lọc tần số cao Butterworth

Hàm lọc tần số cao Butterworth (Butterworth Highpass Filter, hay BHPF) được định nghĩa như sau:

𝐻(𝑢, 𝑣) = 1

1 + [𝐷0/𝐷(𝑢, 𝑣)]2𝑛 (3.11)

(37)

2.2.3. Bộ lọc tần số cao Gauss

Hàm lọc tần số Gauss (Gauss Highpass Filter, hay GHPF) được định nghĩa như sau

𝐻(𝑢, 𝑣) = 𝑒−𝐷2(𝑢,𝑣)/2𝐷02 (3.12)

Hình 13:Hàm lọc GHPF

3. Xây dựng thử nghiệm các ứng dụng của phép lọc trên miền tần số 3.1. Giao diện

(38)

3.2. Cài đặt

 Biểu đồ lớp

(39)

 Sơ đồ xử lý ảnh màu 3.3. Chức năng và sử dụng  Chức năng - Xử lý ảnh màu - Lọc nhiễu ảnh - Làm trơn ảnh - Làm sắc ảnh - Lưu ảnh đã được lọc  Sử dụng

- Click vào button Select Image hay File/Select Image để lựa chọn ảnh - Lựa chọn một bộ lọc bất kì:

+ Bộ lọc thông thấp (làm trơn ảnh): ILPF, BLPF, GLPF. + Bộ lọc thông cao (làm sắc ảnh): IHPF, BHPF, GHPF.

(40)

- Kéo thanh Scroll D0 hay lựa chọn bậc “Level” để thay đổi thông số bộ lọc và quan sát sự thay đổi của ảnh sau khi lọc.

- File/Save Image để lưu lại ảnh đã lọc

3.4. Thử nghiệm ứng dụng 3.4.1. Bộ lọc thông thấp Ideal - Ảnh gốc với kích thước 458x391 pixel - Ảnh được lọc tương ứng với D0 = 20, 50, 100 3.4.2. Bộ lọc thông thấp Butterworth - Ảnh gốc với kích thước 458x391 pixel - Ảnh được lọc tương ứng với D0 = 20, 50, 100 - Bậc n = 2

(41)

Với ảnh văn bản bị rỗ: D0 = 50, n = 2

3.4.3. Bộ lọc tần số thấp Gauss

- Ảnh gốc với kích thước 458x391 pixel

(42)

3.4.4. Bộ lọc thông cao Ideal

- Ảnh gốc với kích thước 295x249 pixel - Ảnh được lọc tương ứng với D0 = 5, 15, 25

(43)

3.4.5. Bộ lọc thông cao Butterworth

- Ảnh gốc với kích thước 295x249 pixel - Ảnh được lọc tương ứng với D0 = 5, 15, 25

(44)

3.4.6. Bộ lọc thông cao Gauss

- Ảnh gốc với kích thước 295x249 pixel - Ảnh được lọc tương ứng với D0 = 5, 15, 25

(45)

IV. KẾT LUẬN

Thông qua việc tìm hiểu và nghiên cứu đề tài này giúp chúng tôi có cái nhìn toàn diện hơn về lĩnh vực xử lý ảnh, đặc biệt là những phương pháp cải thiện chất lượng ảnh thông qua các phép lọc ảnh trên miền không gian và miền tần số. Do thời gian có hạn nên đề tài không tránh khỏi những sai sót, mong cô góp ý, đánh giá giúp chúng tôi bổ sung hoàn thiện đề tài.

(46)

PHÂN CHIA CÔNG VIỆC

1. Thông tin về sinh viên

- Họ và tên: Nguyễn Khánh Hưng

Điện thoại: 01668831690 Email: n.khanhhung@gmail.com

Lớp: TTM-K53 - Nguyễn Lê Hoài Nam

Lớp: TTM-K53 - Phan Văn Trường

Lớp: TTM-K53

Báo cáo thực hiện tại: Đại học Bách Khoa Hà Nội Thời gian: 9/3/2011 – 22/4/2011

2. Nội dung bài tập lớn

- Tìm hiểu về các phép lọc số

- Khảo sát các ứng dụng của phép lọc trên miền tần số đối với ảnh màu - Xây dựng thử nghiệm các ứng dụng của phép lọc trên miền tần số. 3. Nhiệm vụ cụ thể của bài tập lớn

- Phan Văn Trường: Tìm hiểu về các phép lọc số.

- Nguyễn Khánh Hưng: Khảo sát phương pháp lọc trên miền tần số, xây dựng ứng dụng thử nghiệm, báo cáo.

- Nguyễn Lê hoài Nam: Khảo sát phương pháp lọc trên miền tần số, các ứng dụng của phép lọc trên miền tần số.

(47)

TÀI LIỆU THAM KHẢO

- Digital Image Processing - 4th Edition - Pratt-Wiley Intersc - Slide Xử lý ảnh – PGS.TS. Nguyễn Thị Hoàng Lan

- Slide Xử lý tín hiệu số - PGS.TS Trịnh Văn Loan

- Xử lý ảnh trên miền tần số - Phạm Ngọc Tuân, Nguyễn Quốc Thông, Đặng Nguyễn Đăng Nguyên.

- http://en.wikipedia.org/wiki/Fourier_transform

- http://en.wikipedia.org/wiki/Discrete_Fourier_transform

- http://en.wikipedia.org/wiki/FFT

Referências

Documentos relacionados

(Pucrs) Uma circunferência tem centro na interseção da reta x=-2 com o eixo das abscissas e passa pelo ponto de interseção das retas y=-2x+8 e y=x+2. a) Encontre, se existirem,

GERAR A IMAGEM COMPOSTA PELOS DOIS VETORES, SUBSTITUINDO TODOS OS PIXELS AZUIS DE X PELOS CORRESPONDENTES PIXELS DO MAPA Y. cmp x[i],BLUE ; pixel x[i]

Miền xác định của hàm số đang xét là R 2 và hiển nhiên là hàm số f(x,y) đang xét liên tục với mọi x, y trong miền xác định của nó, nên hàm số này đạt

Miền xác định của hàm số đang xét là R 2 và hiển nhiên là hàm số f(x,y) đang xét liên tục với mọi. x, y trong miền xác định của nó, nên hàm số này đạt

Ảo hóa hệ thống máy chủ cho phép ta có thể chạy nhiều máy ảo trên một máy chủ vật lý, đem lại nhiều lợi ích như tăng tính di động, dễ dàng thiết lập với các máy

Hãy tính C% của các dung dịch bão hòa Bari hiđroxit và Đồng (II) clorua ở nhiệt độ này. Phản ứng xong, làm lạnh để hơi nước ngưng tụ hết được hỗn hợp khí Y. Các

• Portanto o tamanho do pixel de 90 nm será necessário para se obter uma amostragem ideal (de um pixel) do material a ser observado ( x/y ). • Assim, em termos estatísticos,

Amplitude spectrum of pulses in the Coulomb excitation of Ta 181 : a= x-ray K-line of Ta; B = y-line corresponding to the decay of the second excited level of Ta 181 with E = 301 kev