Chuyển màu ảnh là một kỹ thuật xử lý ảnh mới sử dụng trong các thao tác xử lý màu phổ biến đối với các sản phẩm đa phương tiện như các tài liệu, hình ảnh, video.. Màu sắc của ảnh sẽ được
Trang 1LỜI MỞ ĐẦU
Thông tin được biểu diễn dưới 3 dạng chủ yếu là: âm thanh, văn bản và hình ảnh Do vậy, xử lý ảnh là một trong những lĩnh vực quan trọng của ngành công nghệ thông tin Mặc dù đây là một lĩnh vực khó nhưng ngày nay nó đang ngày càng trở nên quan trọng trong hệ thống các lĩnh vực phát triển công nghệ thông tin, ứng dụng vào
để giải quyết các bài toán xử lý ảnh, phục vụ nhu cầu con người
Chuyển màu ảnh là một kỹ thuật xử lý ảnh mới sử dụng trong các thao tác xử lý màu phổ biến đối với các sản phẩm đa phương tiện như các tài liệu, hình ảnh, video Mặc dù, hiện nay lĩnh vực này đã có sự phát triển đáng kế, tuy nhiên các nhà thiết kế vẫn cần thể hiện cùng một thông tin đa phương tiện trong một phong cách riêng, tương
ứng với từng ngữ cảnh Do vậy, em đã chọn đề tài “Ứng dụng chuyển màu ảnh theo
bố cục để tạo phong cách ảnh” để làm đề tài tốt nghiệp của mình.
Đồ án này thể hiện phương pháp chuyển màu một cách tùy biến, sử dụng phương pháp kết hợp song song giữa sử dụng ngữ cảnh và các phép lọc Trong phương pháp này, đầu vào sẽ là các bức ảnh và thông tin về ngữ cảnh như thời gian trong năm, tuổi của người xem Dựa vào thông tin ngữ cảnh sẽ xác định được phong cách ảnh, được tạo trước trong một ảnh mẫu có trong CSDL ảnh Từ đó, hệ thống tạo ra bộ ảnh
có nội dung từ bộ ảnh ban đầu, được thể hiện trong phong cách của ảnh lấy từ CSDL ảnh
Màu sắc của ảnh sẽ được chuyển đổi một cách nhẹ nhàng sao cho hợp với nội dung của ảnh đầu vào, đảm bảo vẫn giữ lại tính nhất quán của bức ảnh với phong cách theo yêu cầu và đem lại hiệu quả tốt nhất về thẩm mỹ của bức ảnh
Bố cục trình bày trong báo cáo gồm ba chương chính:
CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN CHUYỂN MÀU ẢNH
Chương này sẽ cung cấp một cái nhìn tổng quan về xử lý ảnh và các vấn đề cơ bản của xử lý ảnh và giới thiệu bài toán chuyển màu ảnh, cụ thể là chuyển màu ảnh theo bố cục để tạo phong cách ảnh
CHƯƠNG 2: PHƯƠNG PHÁP CHUYỂN MÀU ẢNH THEO BỐ CỤC DỰA VÀO SALIENCY MAP VÀ HÀM MẬT ĐỘ XÁC SUẤT
Trang 2Nội dung chương 2 chủ yếu tập trung vào trình bày, phân tích phương pháp chuyển màu ảnh theo bố cục ảnh để tạo phong cách ảnh qua cách xác định Saliency Map của ảnh, hàm mật độ xác suất và sử dụng bộ lọc Gaussian để giúp việc chuyển màu một cách hiệu quả hơn.
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH VÀ ĐÁNH GIÁ KẾT QUẢ
Trong chương 3 sẽ trình bày môi trường xây dựng chương trình và cung cấp một cái nhìn trực quan, sinh động về phương pháp chuyển màu ảnh theo bố cục để tạo phong cách ảnh qua các ví dụ thực nghiệm
Mặc dù đã có rất nhiều cố gắng tham khảo nhiều tài liệu và giáo trình, song không thể tránh khỏi thiếu sót và hạn chế, rất mong nhận được những nhận xét quý báu từ quý thầy cô, cùng toàn thể các bạn để đề tài được hoàn thiện hơn
Trang 3MỤC LỤC DANH MỤC HÌNH VẼ
DANH MỤC BẢNG
KÝ HIỆU CÁC CỤM TỪ VIẾT TẮT
CHƯƠNG 1: TỔ NG QUAN V Ề X Ử LÝ Ả NH VÀ BÀI TOÁN CHUY Ể N MÀU Ả
NH THEO B Ố C Ụ C 1
1.1 T ổ ng quan v ề x ử lý ả nh 1
1.1.1 X ử lý ả nh là gì? 1
1.1.2 Ứ ng d ụ ng c ủ a x ử lý ả nh 5
1.1.3 Các khía c ạ nh c ủ a x ử lý ả nh 6
1.1.4 Các bước cơ bả n trong x ử lý ả nh 7
1.2 Bài toán chuy ể n màu ả nh 8
1.2.1 Bài toán chuy ể n màu chuy ể n màu ả nh 8
1.2.2 Các phương pháp chuyể n màu ả nh 8
1.2.3 Ứ ng d ụ ng c ủ a bài toán chuy ể n màu 10
1.3 K ế t lu ận chương 11
CHƯƠNG 2: PHƯƠNG PH ÁP CHUY Ể N MÀU Ả NH THEO B Ố C Ụ C D Ự A
VÀO SALIENCY MAP VÀ HÀM M ẬT ĐỘ XÁC SU Ấ T 12
2.1 Ph ép bi ến đổ i Fourier v ớ i ả nh 12
2.1.1 Gi ớ i thi ệ u v ề phép bi ể n đổ i Fourier 12
2.1.2 Bi ến đổ i Fourier hai chi ề u v ớ i ả nh 16
2.1.3 M ục đích củ a bi ến đổ i Fourier 16
2.2 Saliency Map c ủ a ả nh 17
2.2.1 Gi ớ i thi ệ u v ề Saliency Map c ủ a ả nh 17
2.2.2 Cách xác đị nh Saliency Map 17
2.3 B ộ l ọ c Gaussian 21
Trang 42.3.1 Các b ộ l ọ c lo ạ i b ỏ nhi ễu thườ ng g ặ p 21
2.3.2 Cơ sở lý thuy ế t c ủ a b ộ l ọ c Gaussian 25
2.3.3 Xây d ựng chương trình và kế t qu ả th ự c nghi ệ m 25
2.4 Hàm mật độ xác suất 27
2.4.1 Gi ớ i thi ệ u hàm m ật độ xác su ấ t 27
2.4.2 Xác đị nh hàm m ật độ xác su ấ t 27
2.4.3 Ứ ng d ụ ng c ủ a hàm m ật độ xác su ấ t trong x ử lý ả nh 28
2.5 P hương pháp chuyể n màu ả nh theo b ố c ụ c d ự a vào Saliency Map và hàm m ật độ xác su ấ t c ủ a ả nh 30
2.5.1 Gi ớ i thi ệu phương pháp 30
2.5.2 N ội dung phương pháp 32
2.6 K ế t lu ận chương 37
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH VÀ Đ ÁNH GIÁ K Ế T QU Ả 39
3.1 Xây d ự ng ứ ng d ụ ng b ằ ng Matlab 39
3.1.1 Gi ớ i thi ệ u v ề Matlab 39
3.1.2 Giao di ện chương trình 41
3.2 M ộ t s ố k ế t qu ả th ự c nghi ệ m c ủa phương pháp 44
3.2.1 Ảnh ngườ i 44
3.2.2 Ả nh phong c ả nh 49
3.2.3 Ả nh ho ạt độ ng 54
3.3 K ế t lu ận chương 3 58
K Ế T LU Ậ N & T Ự ĐÁNH GIÁ 59
TÀI LIỆU THAM KHẢO 61
Trang 5DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình xử lý ảnh 1
Hình 1.2: Một ví dụ về ảnh xám 2
Hình 1.3: Ảnh nhị phân 3
Hình 1.4: Biểu diễn ảnh xám 3
Hình 1.5: Cách biểu diễn ảnh RGB 4
Hình 1.6: Một ví dụ về biểu diễn ảnh RGB 4
Hình 1.7: Chỉ thị màu của ảnh 5
Hình 1.8: Ứng dụng của xử lý ảnh vào theo dõi nhịp tim 6
Hình 1.9: Ứng dụng xử lý ảnh vào nhận dạng biển số xe 6
Hình 1.10: Chuyển màu quả ớt sử dụng phương pháp PCA 8
Hình 1.11: Một ví dụ về phương pháp chuyển màu ảnh theo bố cục 9
Hình 1.12: Chuyển màu website sử dụng phương pháp PCT 10
Hình 2.1: Đồ thị của hàm số ban đầu 13
Hình 2.2: Biểu diễn phép biến đổi Fourier cho hình chữ nhật 14
Hình 2.3: Biểu diễn phép biến đổi Fourier bằng hàm lôgarit 14
Hình 2.4: Biểu diễn trực quan phép biến đổi Fourier bằng hàm lôgarit 15
Hình 2.5: Ảnh gốc ban đầu 20
Hình 2.6: Saliency Map của ảnh sau khi được xác định 20
Hình 2.7: Ảnh gốc ban đầu chưa bị làm nhiễu 21
Hình 2.8: Ảnh sau khi bị làm nhiễu Salt & Pepper 21
Hình 2.9: Ảnh trước khi lọc nhiễu bằng bộ lọc trung bình 22
Trang 6Hình 2.10: Ảnh sau khi lọc nhiễu bằng bộ lọc trung bình 22
Hình 2.11: Ảnh trước khi lọc nhiễu bằng bộ lọc Median 23
Hình 2.12: Ảnh sau khi lọc nhiễu bằng bộ lọc Median 23
Hình 2.13: Ảnh trước khi sử dụng lọc thứ bậc 24
Hình 2.14: Ảnh sau khi sử dụng lọc thứ bậc 24
Hình 2.15: Ảnh sau khi làm nhiễu 26
Hình 2.16: Ảnh sau khi lọc nhiễu bằng bộ lọc Gaussian 26
Hình 2.17: Ví dụ về biểu đồ xám của ảnh 28
Hình 2.18: Ảnh RGB thử ban đầu 29
Hình 2.19: Histogram của ảnh RGB 29
Hình 2.20: Phương pháp chuyển màu 30
Hình 2.21: Một số phần mềm xử lý ảnh phổ biến hiện nay 31
Hình 2.22: Sử dụng phép biến đổi Fourier để thực hiện chuyển màu 33
Hình 2.23: Ảnh gốc ban đầu chưa chuyển màu 35
Hình 2.24: Ảnh mẫu chứa màu cần chuyển 35
Hình 2.25: Ảnh sau khi chuyển màu 36
Hình 2.26: Một ứng dụng của chuyển màu ảnh trong Nhiếp ảnh 37
Hình 3.1: Logo của Matlab 39
Hình 3.2: Giao diện phần mềm Matlab 40
Hình 3.3: Giao diện ứng dụng 41
Hình 3.4: Form hiển thị ảnh gốc 42
Hình 3.5: Form hiển thị Saliency Map của ảnh 42
Trang 7Hình 3.6: Form hiển thị hình ảnh chứa template 43
Hình 3.7: Form hiển thị kết quả thu được 43
Hình 3.8: Tông màu bức ảnh chuyển thành màu vàng của hoa 45
Hình 3.9: Bức ảnh ban đầu được chuyển sang màu xanh hơn 46
Hình 3.10: Bầu trời và mặt biển chuyển xế chiều 47
Hình 3.11: Ảnh Ca sỹ Sơn Tùng MTP trông “xanh” hơn 48
Hình 3.12: Hoa anh đào từ màu hồng chuyển sang màu đỏ 50
Hình 3.13: Quang cảnh từ ban ngày chuyển sang chiều tối 51
Hình 3.14: Thành nhà hồ được chuyển màu trông cũ kỹ hơn 52
Hình 3.15: Mặt nước hồ Tây trông “ảo diệu” 53
Hình 3.16: Bầu trời và nước biển có màu xanh và sáng hơn 55
Hình 3.17: Cảnh vật trông tối hơn và mù mịt hơn 56
Hình 3.18: Hình ảnh hai bé trở nên lung linh hơn trong đêm rước đèn 57
Trang 8DANH MỤC BẢNG
Bảng 3.1: Bảng mô tả dữ liệu thực nghiệm với ảnh người 44Bảng 3.2: Bảng mô tả dữ liệu thực nghiệm với ảnh phong cảnh 49Bảng 3.3: Bảng mô tả dữ liệu thực nghiệm với ảnh hoạt động 54
Trang 9KÝ HIỆU CÁC CỤM TỪ VIẾT TẮT
phân loại màu
DFT Discrete Fourier Transform Biến đổi Fourier rời rạc
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN CHUYỂN
MÀU ẢNH THEO BỐ CỤC
Trong chương này sẽ trình bày các kiến thức cơ bản xử lý ảnh; các vấn đề cơ bản
trong xử lý ảnh Ở phần cuối của chương sẽ giới thiệu tổng quan về đề tài tốt nghiệp
và mục tiêu cần đạt được trong đồ án tốt nghiệp này
1.1 Tổng quan về xử lý ảnh
1.1.1 Xử lý ảnh là gì?
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò
quan trọng nhất Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử
lý ảnh và đồ hoạ đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc
sống
Xử lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết
quả mong muốn Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Kết quả
đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra
kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt
hơn” hoặc một kết luận
Hình 1.1: Quá trình xử lý ảnh
Một số khái niệm cơ bản trong xử lý ảnh:
Giả sử chúng ta có một bức ảnh đơn sắc, nghĩa là chỉ có sắc thái của màu xám,
không có màu khác
1
Trang 11Để thuận thiện cho lý thuyết và giải quyết bài toán, ta có thể xem ảnh là hàm số
tín hiệu trong không gian liên tục I(x, y) với x, y ϵ R, x ϵ [0, x max ], y ϵ [0, y max ], I ϵ [0, 1] Với tính liên tục, ta có thể sử dụng tính toán tích phân, vi phân để hiểu các thuộc
tính và để xử lý hiệu quả hình ảnh
Các giá trị xám của điểm ảnh trong hầu hết các ảnh có sự tương đồng với một hiệu ứng vật lý trong không gian 2-D Ví dụ, giá trị xám tương ứng với cường độ sáng nhận được tại buồng tối của máy ảnh hoặc cường độ siêu âm ở máy chụp siêu âm.Tuy nhiên, ta cũng có thể đặt ảnh trong không gian trừu tượng trong các tọa độ không chỉ tương ứng trong không gian vật lý, mà có thể mở rộng lên ảnh ba chiều hoặc nhiều hơn Ví dụ, ảnh y khoa (chụp các cơ quan nội tạng) có thể xem xét với đầy
đủ ba chiều 3-D và có khi cần được theo dõi trong một thời gian (ví dụ, quan sát trái tim đập) Khi đó, ta cần ảnh 4-D với ba tọa độ không gian và một tọa độ thời gian.Dưới đây sẽ là một số loại ảnh kỹ thuật số cơ bản trong xử lý ảnh
Trang 12Ảnh nhị phân Mỗi điểm ảnh chỉ là màu đen hoặc trắng, được biểu diễn bằng 0
và 1 Vì chỉ có hai giá trị cho mỗi điểm ảnh, do đó, chúng ta chỉ cần một bit cho mỗi điểm ảnh Như vậy, việc lưu trữ khá hiệu quả Ảnh nhị phân có thể phù hợp với văn bản (in hoặc viết tay), dấu vân tay, thiết kế kiến trúc
Hình 1.3: Ảnh nhị phân
Ảnh xám Mỗi điểm ảnh là màu xám, thông thương từ 0 (màu đen) đến 255 (màu
trắng) Với phạm vi này, mỗi điểm ảnh sẽ được biểu diễn bằng 8 bit, hay 1 byte
đồ màu xám đặc biệt thích hợp với các cường độ (Intensity Image), tức là các điểm ảnh
thể hiện cường độ tin hiệu bằng một giá trị duy nhất tại mỗi điểm ảnh
Hình 1.4: Biểu diễn ảnh xám
Trang 13Ảnh màu RGB Bên cạnh các ảnh xám mà mỗi điểm ảnh là một giá trị duy nhất
thì ta có ảnh màu hệ RGB Trong hệ màu này, tại mỗi điểm ảnh có ba thành phần R, G,
B Ở đây, màu được xem là sự kết hợp tuyến tính của màu sắc cơ bản và ảnh màu có thể được cấu thành từ ba lớp, tương ứng với R, G, B Một biểu diễn hệ màu khác là HSV (màu sắc, độ bão hòa và cường độ) cũng được sử dụng rộng rãi
Hình 1.5: Cách biểu diễn ảnh RGB
Hình 1.6: Một ví dụ về biểu diễn ảnh RGB
Chỉ thị màu (Indexed) Mỗi ảnh màu chỉ có một nhóm nhỏ trong số hơn 16 triệu
màu Để tiện cho lưu trữ và xử lý tệp tin, mỗi ảnh có một bản đồ màu (Colour Map) là
Trang 14tập hợp các màu có trong ảnh Mỗi điểm ảnh có một giá trị, không phải chỉ màu, mà là chỉ thị màu trong bản đồ màu nói trên.
Y học: Kiểm tra và giải thích các ảnh chụp X-quang, ảnh chụp cắt lớp MRI, phân
tích các ảnh động, các nhiễm sắc nhiễm sắc thể, điện tâm đồ, điện não đồ…
Nông nghiệp: Phân tích ảnh chụp vệ tinh, ví dụ xác định diện tích đất đang sử
dụng cho các mục đích khác nhau, sự phù hợp của các khu vực canh tác cho các loại cây trồng…
Công nghiệp: Kiểm tra tự động các mặt hàng trên một dây chuyền sản xuất,
kiểm soát dây chuyền sản xuất tự động
Trang 15Hình 1.8: Ứng dụng của xử lý ảnh vào theo dõi nhịp tim
Giáo dục đào tạo: Nhập liệu tự động trong các kỳ thi đại học, cao đẳng, Chấm
thi trắc nghiệm tự động
Tư pháp: Phân tích dấu vân tay, khôi phục hình ảnh bị mờ, bị nhiễu…
Hình 1.9: Ứng dụng xử lý ảnh vào nhận dạng biển số xe
1.1.3 Các khía cạnh của xử lý ảnh
Các thuật toán xử lý ảnh có các nhiệm vụ khác nhau Tùy theo nhiệm vụ chính
mà các thuật toán xử lý ảnh có thể sắp xếp vào các nhóm
Nâng cao ảnh – quá trình xử lý ảnh trở nên thuận tiện hơn cho một ứng dụng
khác, ví dụ:
Làm sắc nét ảnh hơn hay làm giảm bớt độ nét của ảnh
Trang 16 Làm các cạnh trong ảnh sắc nét hơn.
Nâng cao độ tương phản của ảnh hoặc làm ảnh sáng lên
Loại bỏ nhiễu trong ảnh
Khôi phục ảnh - Ảnh có thể bị mờ hoặc bị nhiễu Cần loại bỏ nhiễu và mờ để
tìm lại hình ảnh ban đầu
Phân vùng ảnh – Phân chia một ảnh thành các bộ phận cấu thành hoặc xác định
một số thành phần trong ảnh như tìm đường thẳng, hình tròn hoặc hình dạng đặc biệt trong ảnh
1.1.4 Các bước cơ bản trong xử lý ảnh
Các bước cơ bản trong xử lý ảnh bao gồm:
Nhận ảnh Đầu tiên ta cần tạo ra một ảnh kỷ thuật số từ ảnh in trên giấy bằng
máy quét hay máy chụp ảnh kỹ thuật số
Tiền xử lý Đây là bước thực hiện khi tiến hành các nhiệm vụ xử lý ảnh lớn
Bước này thực hiện một số nhiệm vụ cơ bản để làm ảnh trở nên phù hợp hơn cho việc tiếp theo Đó là việc tăng cường độ tương phản, loại bỏ nhiễu, hoặc xác định các vùng ảnh có khả năng chứa thông tin quan trọng
Phân vùng ảnh Phân ảnh thành các vùng nhỏ.
Biểu diễn và mô tả Phát hiện các đặc tính, từ đó phân biệt các đối tượng.
Phân tích và suy luận Gán nhãn cho các đối tượng dựa trên mô tả của chúng từ
bước trước và gán ý nghĩa cho các nhãn
Trang 171.2 Bài toán chuyển màu ảnh
1.2.1 Bài toán chuyển màu chuyển màu ảnh
Bài toán chuyển màu ảnh là một bài toán hay và quan trọng trong lĩnh vực xử lý ảnh Ngày nay, mặc dù công nghệ đã và đang ngày càng phát triển, các hướng nghiên cứu và ứng dụng trong xử lý ảnh đã ngày càng một đa dạng, phong phú và áp dụng trong nhiều lĩnh vực hơn Song, tất cả chúng đều dựa trên những bài toán cơ bản của
1.2.2 Các phương pháp chuyển màu ảnh
a Chuyển màu dựa vào phép phân tích thành phần chính của ảnh (Principal Component Analys - PCA)
Mục đích chính của phương pháp PCA là giảm số chiều của một tập vector sao cho vẫn giữ tối đa được những thông tin quan trọng nhất
Hình 1.10: Chuyển màu quả ớt sử dụng phương pháp PCAPhương pháp này chủ yếu với những bài toán chuyển màu của một đối tượng cụ thể nào đó của ảnh Ví dụ, với bài toán nhận dạng mặt người, sau khi đã nhận dạng được mặt người đó rồi, chúng ta sẽ đi chuyển màu da của mặt người đó theo một ảnh mẫu có sẵn
Trang 18Với phương pháp này, việc chuyển màu sẽ tập trung hơn, tuy nhiên tính tùy biến không cao và chỉ áp dụng trong một số trường hợp chỉ xác định được thành phần chính của ảnh.
b Chuyển màu ảnh theo bố cục dựa vào hàm mật độ xác suất (PDF)
Dựa vào lý thuyết thông kê, bằng phương pháp xác định PDF của ảnh, phương pháp chuyển màu ảnh theo bố cục sẽ đi xác định Saliency Map của ảnh ban đầu, sau
đó chuyển màu ảnh ban đầu dựa trên Saliency Map vừa tìm được Việc chuyển màu ảnh theo phương pháp này giúp cho chuyển màu ảnh mà vẫn giữ được những thành phần nổi bật của ảnh
Hình 1.11: Một ví dụ về phương pháp chuyển màu ảnh theo bố cụcTheo ví dụ trên, ở ảnh ban đầu, bông hoa và một phần của ngọn núi ban đầu được xác định là thành phần nổi bật của ảnh (có màu trắng), khi chuyển màu theo tông màu của ảnh mẫu (màu vàng) thì bông hoa và một phần ngọn núi được chuyển thành màu
Trang 19vàng của ảnh mẫu, các thành phần khác như bầu trời vẫn giữ nguyên màu, do nó không phải thành phần nổi bật của ảnh.
c Chuyển màu ảnh theo từng phần của đối tượng (Partitional Color Transfer)
Phương pháp chuyển màu theo từng phần của đối tượng được áp dụng khi muốn chuyển màu chỉ một hoặc một số phần của ảnh, đối tượng
Ví dụ, khi muốn chuyển màu ảnh của một website theo một màu của website có sẵn thì chúng ta chỉ chuyển màu của phần header và footer của website, các thành phần khác vẫn giữ nguyên
Ví dụ dưới đây được thực hiện bởi Xiangping Chen, Yonghao Long, Xiaonan Luo, trong tài liệu “Automatic Color Modification for Web Page Based on Partitional Color Transfer.”
Hình 1.12: Chuyển màu website sử dụng phương pháp PCT
1.2.3 Ứng dụng của bài toán chuyển màu
Chuyển màu ảnh là một bài toán cơ bản và quan trọng trong xử lý ảnh Có rất nhiều ứng dụng của chuyển màu ảnh, tùy theo yêu cầu bài toán và mục đích sử dụng Một số ứng dụng cơ bản có thể kể đến như:
Phối màu, chỉnh màu sử dụng trong nhiếp ảnh, hội họa;
Ứng dụng trong bài toán nhận dạng để làm phân biệt, xử lý đối tượng
Ứng dụng vào marketing khi muốn chuyển màu ảnh một cách tự động tùy theo
sở thích, độ tuổi… đối tượng khách hàng
Ứng dụng vào thương mại điện tử, thiết kế website khi muốn chuyển màu của website một cách tự động, tùy theo loại người dùng
Trang 21CHƯƠNG 2: PHƯƠNG PHÁP CHUYỂN MÀU ẢNH THEO BỐ CỤC DỰA VÀO SALIENCY MAP VÀ HÀM MẬT ĐỘ XÁC SUẤT
Nội dung chính trong chương 2 là trình bày về phương pháp chuyển màu ảnh theo bố cục để tạo phong cách ảnh Nội dung chủ yếu đi sâu vào tập trung trình bày phép biển đổi Fourier – dùng để chuyển ảnh ban đầu từ miền không gian sang miền
tần số, thuận tiện cho việc xử lý, thực hiện phép toán Saliency Map – dùng để xác định thành phần nổi bật của ảnh cần chuyển màu (các kiến thức về Saliency Map của ảnh, cách xác định Saliency Map của ảnh), hàm mật độ xác suất PDF…
Dựa từ những cơ sở trên, ở cuối chương sẽ trình bày phương pháp chuyển màu theo bố cục ảnh để tạo phong cách ảnh – kết hợp từ những phương pháp xác định Saliency Map, bộ lọc Gaussian, hàm PDF của ảnh… đã đề cập ở trên, đi kèm với những ví dụ thực nghiệm để mô tả phương pháp
2.1 Phép biến đổi Fourier với ảnh
2.1.1 Giới thiệu về phép biển đổi Fourier
Biến đổi Fourier hay chuyển hóa Fourier, được đặt tên theo nhà toán học người Pháp Joseph Fourier, là một biến đổi tích phân dùng để khai triển một hàm số theo các hàm số sin cơ sở, có nghĩa là dưới dạng tổng hay một tích phân của các hàm số sin được nhân với các hằng số khác nhau (hay còn gọi là biên độ)
Biến đổi Fourier có rất nhiều dạng khác nhau, chúng phụ thuộc vào dạng của hàm được khai triển
Nếu f(m,n) là một hàm với hai biến không gian độc lập m và n , thì biến đổi Fourier hai chiều của hàm f(m,n) được định nghĩa bởi quan hệ:
được gọi là biểu diễn trong
tuần hoàn , nên ω
1 và ω
2 thường được chọn trong khoảng - π đến π Chú ý rằng F(0,0)
Trang 22là tổng của tất cả các giá trị của f(m,n) Vì lý do này F(0,0) thường được gọi là thành
phần không đổi hoặc thành phần một chiều dịch chuyển của biến đổi Fourier
Biến đổi Fourier ngược được cho bởi công thức:
Nói chung , phương trình này có nghĩa rằng f(m,n) có thể được đại diện như là
tổng vô hạn của các hàm mũ phức với các tần số khác nhau Biên độ và pha của thànhphần ở tần số (ω1,ω2 ) được lưu trong F (ω1,ω2 )
Để minh hoạ, ta hãy xem hàm f(m,n) nhận giá trị bằng 1 trong khoảng hình chữ nhật (xem hình) và bằng 0 tại mọi điểm khác Để đơn giản sơ đồ f(m,n) được coi như
một hàm liên tục mặc dù m, n là các biến rời rạc
Hình 2.1: Đồ thị của hàm số ban đầu
Hình biểu diễn sau đây biểu diễn biên độ của biến đổi Fourier
hàm chữ nhật như trên
| F(ω1,ω2 )
|
của
Trang 23Hình 2.2: Biểu diễn phép biến đổi Fourier cho hình chữ nhật
Giá trị đỉnh ở tâm của đồ thị là F(0,0), đó là tổng của tất cả các giá trị của hàm f(m,n) Đồ thị cũng chỉ ra rằng F(ω1,ω2 ) có nhiều năng lượng hơn ở vùng tần số ngang
so với tần số đứng Điều này phản ánh sự thực rằng các vùng giao ngang của hàm
f(m,n) (horizontal cross sections) là các xung hẹp trong khi các vùng giao đứng của
hàm này là các xung rộng Xung hẹp mang nhiều nội dung tần số hơn xung hẹp
Một cách khác để biểu diễn trực quan biến đổi Fourier là hiển thị hàm log
| F(ω1,ω2 ) | như một ảnh:
Hình 2.3: Biểu diễn phép biến đổi Fourier bằng hàm lôgarit
Trang 24Sử dụng hàm lôgarit giúp cho việc nhận rõ đặc tính của biến đổi Fourier ở cácvùng mà giá trị F(ω1,ω2 ) gần bằng 0 Để minh hoạ, hãy xem biểu diễn trực quan cácbiến đổi Fourier sau:
Hình 2.4: Biểu diễn trực quan phép biến đổi Fourier bằng hàm lôgarit
Trang 252.1.2 Biến đổi Fourier hai chiều với ảnh
Khi sử dụng biến đổi Fourier cho ảnh, có hai điều cần lưu ý Một là ảnh không phải là hàm số định kỳ Hai là ảnh thường là hàm số không gian 2D
Ta xem như ảnh 2D như là hàm số tín hiệu rời rạc f(x,y) với các giá trị trong ma trận [M,N] Trong Matlab ta tính biển đổi Fourier (DFF) bằng hàm fft2 Hàm fft2 này
trả thành phần có tần số tại góc trái bên trên cùng của ảnh
2.1.3 Mục đích của biến đổi Fourier
Thông thường, xử lý ảnh thường được thực hiện trong miền không gian, do tính trực quan cao Nhưng khi thực hiện trong 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 về 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à Fourier, biển đổi Cosin rời rạc
Các biển đổi Fourier có tầm quan trọng trong xử lý ảnh cơ bản Nó cho phép ta thực hiện một số công việc mà không thể có phương pháp khác thay thế, tính hiệu quả giúp ta thực hiện một số công việc nhanh chóng hơn
Các biến đổi Fourier cung cấp giải pháp mạnh trong không gian tần số, thay thể giải pháp trong không gian thực Các biến đổi cũng cho phép phân tách và xử lý các tần số hình ảnh và để thực hiện lọc tần số thấp cũng như tần số cao
Ngoài ra, biến đổi Fourier trên máy tính là biến đổi Fourier rời rạc (DFT) Có hai
lý do chính để sử dụng loại biến đổi Fourier này:
các thao tác biến đổi trên máy tính
nhanh (Fast Fourier Transform).
Trang 262.2 Saliency Map của ảnh
2.2.1 Giới thiệu về Saliency Map của ảnh
a) Saliency Map của ảnh
Nhận biết đối tượng là một trong những giai đoạn đầu tiên trước khi bước vào giai đoạn xử lý ảnh Để có nhận biết được một đối tượng trong trành thì trước hết chúng ta phải xác định được đối tượng
Bản chất của việc xác định đối tượng trong ảnh là chúng ta bóc tách đối tượng đấy ra khỏi nền của ảnh trước khi thực hiện nhận biết đối tượng Vấn đề đặt ra là làm thế nào để hệ thống thị giác của máy tính có thể xác định được phần nổi bật của ảnh
(Saliency Region hay Saliency Map) từ một ảnh nền chưa biết.
Như vậy, nhận biết và xác định Saliency Map của ảnh là một bước đầu tiên để
nhằm mục đích nhận biết đâu là thành phần quan trọng của ảnh, điểm nổi bật của ảnh
Từ đó để tiện cho các xử lý phức tạp sau này Đặc biệt, với những bài toán xử lý ảnh
với mục đích nâng cao chất lượng ảnh, việc xác định được Saliency Map của ảnh
không chỉ giúp xác định được thành phần quan trọng của ảnh mà còn loại bỏ những yếu tố dư thừa của ảnh đó, tránh được những thao tác xử lý không cần thiết trong quá trình thực hiện xử lý ảnh
b) Lý thuyết phân bổ màu sắc
Để xác định Saliency Map của ảnh ta sử dụng lý thuyết phân bổ màu sắc của ảnh,
sự khác biệt của các điểm ảnh
Sự phân bổ màu sắc phụ thuộc vào mức độ phân bố màu sắc tại các điểm ảnh trong ảnh
c) Mức phân bổ màu sắc
Mức phân bổ màu sắc được dùng để đánh giá sự khác biệt giữa các vùng màu trong ảnh Để xác định mức phân bổ màu sắc, chúng ta sử dụng hàm lôgarit sau khi biến đổi Fourier hai chiều cho ảnh
2.2.2 Cách xác định Saliency Map
Để xác định bố cục ảnh, ta xác định những thành phần trong ảnh mà nổi trội hơn
so với các thành phần khác, hay nói cách khác là đi xác định Saliency Map.
Trang 27Saliency Map được xác định nhờ vào độ khác biệt về sự phân bổ màu ảnh Theo
lý thuyết phân bổ màu sắc, trong một bức ảnh, vùng nào mà có sự phân bổ màu nhiều hơn, tập trung nhiều điểm ảnh mà có cùng một màu hoặc các màu tương tự nhiều hơn
so với những vùng còn lại thì đấy chính là vùng nổi bật của ảnh
Đầu vào sẽ là một bức ảnh sẽ biểu diễn theo dạng ma trận I gồm nhiều điểm ảnh
Từ ma trận I sẽ sử dụng phép biển đổi Fourier để chuyển ma trận ban đầu thành lôgarit tiện cho việc so sánh, xác định Saliency Map của ảnh
Mức độ phân bổ màu ảnh của ảnh ban đầu theo phép biến đổi Fourier là: A(f) A(f) = R(T[L(x)])
Khi đó, giá trị của mức độ phân bổ màu tại mỗi giai đoạn của ảnh sẽ tính bằng công thức:
Mục đích của việc xác định Saliency Map của ảnh
Việc xác định Saliency Map của ảnh được xem như một bước tiền xử lý trong bài toán chuyển màu ảnh theo bố cục để tạo phong cách ảnh Nó giúp xác định những thành phần nổi trội, quan trọng của bức ảnh ban đầu để tiện cho các xử lý sau này Nếu không xác định Saliency Map của ảnh trước khi chuyển màu ảnh thì sẽ xảy ra trường hợp bức ảnh được chuyển màu giống hệt như ảnh mẫu, dẫn đến tính thẩm mỹ của ảnh không được cao và hiệu quả
Trang 28Dưới đây là chương trình thể hiện thuật toán tìm Saliency Map của một tranh bằng ngôn ngữ Matlab.
Chương trình Matlab mô phỏng phương pháp xác định Silency Map
saliencyMap = abs(ifft2(exp(mySpectralResidual + i*myPhase))).^2;
[10, 10], 2.5)));
imshow(saliencyMap);
Trang 29Hình ảnh thực nghiệm thu được:
Hình 2.5: Ảnh gốc ban đầu
Hình 2.6: Saliency Map của ảnh sau khi được xác định
Trang 302.3 Bộ lọc Gaussian
2.3.1 Các bộ lọc loại bỏ nhiễu thường gặp
Để có thể xử lý ảnh và phân tích, đánh giá thông tin một cách rõ ràng, chúng ta cần giảm thiểu tối đa độ nhiễu hoặc loại bỏ nhiễu của ảnh
Ảnh thường hay bị nhiễu và cần loại bỏ nhiễu Trong môi trường Matlab có hàm
imnoise sinh nhiễu tự động, dùng để làm cơ sở cho việc so sánh đối chiếu với các
phương pháp lọc nhiễu Ví dụ dưới đây tạo ra nhiễu trên ảnh
Hình 2.7: Ảnh gốc ban đầu chưa bị làm nhiễuHình 2.8: Ảnh sau khi bị làm nhiễu Salt & Pepper
Trang 31Bộ lọc trung bình (Mean Filter).
Bộ lọc Mean là bộ lọc tuyến tính đơn giản, nhân cùng với một trọng số với mọi điểm ảnh trong vùng lân cận Với vùng lân cận kích thước NxM, trọng số sẽ là wk = 1/(M*N) Bộ lọc trung bình có thể dùng cho việc làm nhiễu ảnh Ví dụ dưới đây áp dụng
bộ lọc mean cho cả ba đầu ảnh
Kết quả cho thấy bộ lọc trung bình đã lọc trung bình đã lọc được nhiễu trong ảnh
có nhiễu Gaussian, nhưng cũng làm mờ đi các đường nét của ảnh
Hình 2.9: Ảnh trước khi lọc nhiễu bằng bộ lọc trung bìnhHình 2.10: Ảnh sau khi lọc nhiễu bằng bộ lọc trung bình
Trang 32Bộ lọc trung vị (Median Filter) cũng khá phổ biến Bộ lọc trung vị median
tránh được hạn chế của bộ lọc trung bình: loại bỏ nhiễu, đồng thời không bị giảm độ nét các cạnh Tuy nhiên, bộ lọc trung vị median tốn nhiều thời gian tính toán hơn
Hình 2.11: Ảnh trước khi lọc nhiễu bằng bộ lọc MedianHình 2.12: Ảnh sau khi lọc nhiễu bằng bộ lọc Median
Trang 33Bộ lọc thứ bậc (Rank Filter) Bộ lọc Median là một trường hợp đặc biệt của bộ
lọc thứ bậc Bộ lọc thứ bậc tổn quát lọc ảnh như sau:
Xác định các điểm ảnh trong vùng lân cận NxN của điểm ảnh đang xét
Sắp xếp các điểm ảnh theo thứ tự từ nhỏ đến lớn
Chọn bậc k của bộ lọc (trong khoảng từ 1 đến N2)
Lấy giá trị tại vị trí k trong dãy đã sắp xếp làm kết thúc Hình
ảnh dưới đây áp dụng bộ lọc thứ bậc – Order
Hình 2.13: Ảnh trước khi sử dụng lọc thứ bậcHình 2.14: Ảnh sau khi sử dụng lọc thứ bậc
Trang 342.3.2 Cơ sở lý thuyết của bộ lọc Gaussian
Bộ lọc Gaussian rất quan trọng về lý thuyết và thực hành Ở đây, ta dùng hàm Gaussian liên tục 2-D để tạo ra các trọng số rời rạc
Giá trị � gọi là độ lệch chuẩn của hàm Gaussian
Bộ lọc Gaussian có hiệu ứng làm mịn ảnh, nhưng được dùng khác với bộ lọc mean Độ mịn được kiểm soát bởi độc lệch chuẩn � mà không phải là độ rộng của bộ lọc như trong bộ lọc mean
Bộ lọc Gaussian có dạng biến đổi đặc biệt: Biển đổi Fourier rất thuận tiện trong không gian tần số Hàm số Gaussian với độ lệch chuẩn � lớn là một ví dụ của bộ lọc tần số thấp, trong đó các thành phần của ảnh có tần số cao được loại ra
Trong ứng dụng này, bộ lọc Gaussian được sử dụng để làm mờ Saliency Map của ảnh, có tác dụng giảm độ chênh lệch giữa ảnh ban đầu và kết quả thu được, giúp bức ảnh nhìn mịn màng, trơn tru hơn
2.3.3 Xây dựng chương trình và kết quả thực nghiệm
Dưới đây là một ví dụ sử dụng bộ lọc Gaussian
Chương trình Matlab mô phỏng bộ lọc Gaussian
Trang 35Hình ảnh thực nghiệm thu được
Hình 2.15: Ảnh sau khi làm nhiễuHình 2.16: Ảnh sau khi lọc nhiễu bằng bộ lọc Gaussian