Professional Documents
Culture Documents
XỬ LÝ ẢNH SỐ
Mục tiêu môn học: Cung cấp cho sinh viên một số kỹ thuật xử lý ảnh cơ bản, đồng thời
trang bị những kiến thức nền để có thể xây dựng các hệ thống thông tin hình ảnh. Sinh
viên sau khi học xong tiếp thu được các kiến thức về:
Để học tốt môn học này, người học cần có những kiến thức của 03 môn học sau:
• Các ngôn ngữ lập trình hiện đại theo công nghệ .NET, JAVA
• Các bộ công cụ có hỗ trợ lập trình xử lý ảnh MATLAB, GNU Octive, Trí tuệ nhân
tạo
Nội dung của môn học: gồm 07 chương. Các kiến thức đi từ cơ bản đến nâng cao dần.
Yêu cầu:
i
Xử lý ảnh ths.Bùi Xuân Tùng
• Tài liệu học tập môn xử lý ảnh do giáo viên cung cấp, bao gồm giáo trình và slide
bài giảng trên lớp.
• Trang E-Learning do giáo viên cung cấp.
• Tài liệu tiếng Anh: o Digital Image Processing.
• Công cụ ứng dụng: o Digital Image Processing Demo.
o Matlab.
o Adobe Photoshop.
ii
Xử lý ảnh ths.Bùi Xuân Tùng
Quyển giáo trình này được viết nhằm mục đích phục vụ cho việc giảng dạy và học
tập môn Xử lý ảnh cho sinh viên năm 04 chuyên ngành Tin học trường Đại học Tây Đô.
Quyển sách được biên soạn dựa trên sự tham khảo các tài liệu chuyên ngành Xử lý
ảnh bằng tiếng Anh và tài liệu tiếng Việt Xử lý ảnh của Thạc sĩ Dương Văn Hiếu, kỹ sư
Vương Huỳnh Long, Lương Mạnh Bá, Nguyễn Thanh Thủy.
Nội dung quyển giáo trình bao gồm hai phần: cơ sở và nâng cao.
Phần cơ sở (gồm 03 chương đầu) cung cấp cho người học các kiến thức cần thiết
và cơ bản nhất trong xử lý ảnh.
Phần nâng cao (gồm 04 chương còn lại) cung cấp cho người học các kiến thức
nâng cao trong xử lý ảnh.
Mặc dù đã cố gắng hết sức nhưng do kiến thức có hạn nên chắc hẳn rằng chúng tôi
không thể tránh khỏi những thiếu sót. Kính mong quý Thầy Cô và quý Bạn Sinh viên
thông cảm. Rất mong nhận được những ý kiến đóng góp chân thành để chúng tôi có thể
hoàn thiện nội dung quyển giáo trình.
iii
Xử lý ảnh
Chương I cung cấp cho người học các khái niệm cơ bản về của xử lý ảnh, từ đó giúp
có được cái nhìn tổng quát về các kỹ thuật xử lý ảnh cũng như ứng dụng của nó. Nội
dung chương I bao gồm các kiến thức sau:
- Hình ảnh.
- Cải thiện chất lượng thông tin hình ảnh.
- Xử lý ảnh.
- Ảnh số.
- Kích thước của ảnh.
- Các khía cạnh của xử lý ảnh.
- Một vài ứng dụng của xử lý ảnh.
- Các công việc của xử lý ảnh.
- Hệ màu RGB.
Hình ảnh là một bức tranh mô tả sự vật, chẳng hạn như hình con người, con vật,
phong cảnh; các hình ảnh chụp trong xét nghiệm y khoa; hình chụp trong thiên văn học,
địa chất…
Con người là sinh vật có khả năng cảm nhận hình ảnh rất cao. Thông qua các cảm
nhận về hình ảnh giúp chúng ta xác định và phân loại vật thể bằng hình ảnh, nhận biết
được sự khác nhau giữa các vật thể và có một cái nhìn tổng quát về quang cảnh. Con
người có rất nhiều kỹ năng về thị giác, chẳng hạn như chúng ta có thể nhận dạng gương
mặt của một đối tượng, phân biệt được các màu sắc khác nhau, cũng như khả năng xử lý
một lượng lớn các thông tin về hình ảnh thu được một cách nhanh chóng.
Nghiên cứu các thuật toán xử lý ảnh để cải thiện được chất lượng thông tin hình
ảnh nhằm giúp cho quá trình cảm nhận của con người được tốt hơn, đồng thời sẽ phù hợp
hơn cho việc cảm nhận hình ảnh của con người bằng máy tính.
Cải thiện chất lượng thông tin ảnh là quá trình thao tác, xử lý nội dung ảnh nhằm
tạo ra ảnh kết quả phù hợp với mục đích cảm nhận của người xem ảnh.
Ví dụ như khi muốn xác định đường biên của các đối tượng trong ảnh thì việc xử
lý ảnh để lấy được đường biên ảnh sẽ giúp cho chúng ta cảm nhận tốt hơn về đường biên,
khi đó việc cải thiện chất lượng thông tin hình ảnh là phát hiện đường biên, cũng vậy, khi
một bức ảnh có nhiều màu đỏ và nếu điều đó làm cho người xem cảm thấy khó chịu thì
việc cải thiện chất lượng thông tin ảnh là làm giảm bớt màu đỏ trong ảnh nhằm giúp
người xem cảm thấy dễ chịu hơn.
1.3. XỬ LÝ ẢNH
Xử lý ảnh là làm thay đổi bản chất của hình ảnh nhằm để cải thiện thông tin hình
ảnh cho quá trình cảm nhận của con người .
Xử lý ảnh số là sử dụng máy tính để làm thay đổi bản chất của ảnh số nhằm để làm
cho hình ảnh trông tốt hơn, trích lọc thông tin từ hình ảnh, ghép hình, tạo các hiệu ứng
hình ảnh…
1.4. ẢNH SỐ
Hình ảnh được lưu trong các thiết bị số như máy tính, máy chụp hình kỹ thuật
số… được gọi là ảnh số.
Ảnh số là một mảng hai chiều gồm các điểm ảnh (pixel), mỗi điểm ảnh được xác
định bởi tọa độ (x,y) và màu của nó.
Ảnh số được xem như một hàm số z=f(x,y), với (x,y) là tọa độ của điểm ảnh thì z
là màu của điểm ảnh có tọa độ (x,y).
Ảnh số khác với ảnh tuần tự (Analog image) là các giá trị của nó là rời rạc.
Trong các thuật toán xử lý ảnh người ta thường sử dụng 3 dạng ảnh thông dụng là
ảnh nhị phân (binary image), ảnh mức xám (gray image), ảnh màu RGB (RGB image),
ảnh chỉ mục (index image).
Gồm 2 giá trị màu: màu đen có giá trị 0, màu trắng có giá trị 1. Mỗi điểm ảnh
chiếm 1 bit để lưu trữ.
Ả
1.4.2. nh mức xám (Gray image)
Gồm 256 giá trị màu, mỗi điểm ảnh có giá trị đi từ 0 (đen) -> 255 (trắng) và chiếm
1 byte (8 bits) để lưu trữ.
Gồm 3 kênh màu: đỏ (Red), xanh lá cây (Green), xanh da trời (Blue) vì thế được
gọi là ảnh RGB. Mỗi điểm ảnh được tính bằng 3 giá trị màu Red, Green, Blue, mỗi kênh
4
Xử lý ảnh
Ả
màu có giá trị đi từ 0->255. Vì vậy, mỗi điểm ảnh trong ảnh màu RGB chiếm 3 bytes (24
bits) để lưu trữ.
1.4.4. nh chỉ mục (Index image)
Ảnh chỉ mục là ảnh màu sử dụng bảng chỉ mục kèm theo. Ví dụ như ảnh trên ở
điểm ảnh có giá trị 6 sẽ tương ứng với bộ giá trị ở vị trí thứ 7 (có chỉ mục là 6 do bắt đầu
từ 0).
Đối với từng loại ảnh khác nhau sẽ có cách tính kích thước khác nhau. Dưới đây là
công thức tính kích thước của ảnh nhị phân, ảnh mức xám, ảnh màu RGB và ảnh Index.
Mỗi pixel có kích thước 1 bit, mỗi byte lưu được 8 pixel. Ví dụ: ảnh có kích cỡ
255 x 255 (pixel) sẽ có kích thước = 255 x 255 x 1 bit=65,025 bits 8129 bytes 7,94
kB 0,0077 MB.
Giá trị của mức xám từ 0 đến 255. Mỗi byte lưu được 1 giá trị mức xám.Ví dụ:
5
Xử lý ảnh
Ả
ảnh có kích cỡ 255 x 255 (pixel) sẽ có kích thước =255 x 255 x 1 byte =65,025 bytes
63,5 kB 0,063 MB.
Giá trị của các thành phần R, G, B từ 0 đến 255. Mỗi pixel cần 3 bytes để lưu các
phần R, G, B. Ví dụ: ảnh có kích cỡ 255 x 255 (pixel) sẽ có kích thước =255 x 255 x 3
byte =195,075 bytes 190 kB 0,19 MB.
1.5.4. nh chỉ mục
Kích thước của ảnh chỉ mục phụ thuộc vào bằng kích của bảng màu cộng với kích
thước của bảng chỉ mục.
Có nhiều thuật toán xử lý ảnh vì vậy để dễ phân biệt các dạng thuật toán người ta
thường phân loại các thuật toán dựa vào các nhiệm vụ và các vấn đề mà thuật toán đó
giải quyết. Các loại thuật toán trong xử lý ảnh, bao gồm:
Nâng cao hình ảnh (Image enhancement) là xử lý ảnh để kết quả phù hợp hơn
cho một ứng dụng cụ thể, bao gồm:
Phục hồi ảnh (Image restoration) là phục hồi lại các đối tượng bị hư trong ảnh
bởi các nguyên nhân sau:
Phân đoạn ảnh (Image segmentation) là phân chia một hình ảnh thành một hoặc
nhiều bộ phận, một số khía cạnh của một hình ảnh:
- Tìm đường, vòng tròn, hoặc hình dạng đặc biệt trong hình ảnh chẳng hạn như
xác định xe ô tô, cây cối, nhà cửa, hoặc đường giao thông.
6
Xử lý ảnh
Ả
Việc phân chia các lớp đôi khi tùy thuộc vào cảm nhận của cá nhân bởi vì có
những thuật toán có thể ứng dụng cho việc nâng cao hình ảnh hoặc phục hồi ảnh. Tuy
nhiên, ở đây chúng tôi phân loại dựa vào tính tiêu chí sau nếu thuật toán đó có tác dụng là
ảnh trông được tốt hơn (nâng cao) thì thuật toán thuộc về lớp thuật toán nâng cao hình
ảnh, hoặc loại bỏ các hư hại (phục hồi) thì thuật toán thuộc về lớp phục hồi ảnh.
7
Xử lý ảnh
Xử lý ảnh có nhiều ứng dụng, các thuật toán xử lý ảnh được xem như là bước tiền
xử lý cho các ứng dụng có liên quan tới hình ảnh. Chẳng hạn như:
- Ứng dụng trong y khoa o Xem xét và giải thích hình ảnh X quang.
o Phân tích hình ảnh tế bào.
- Ứng dụng trong nông nghiệp o Xử lý hình ảnh thu được từ vệ tinh của các khu
đất, từ đó phân loại đất để tìm loại cây trồng phù hợp.
o Phân tích tình hình sâu, bênh thông qua xử lý màu lá.
- Ứng dụng trong công nghiệp o Kiểm tra sản phẩm trong dây truyền sản xuất tự
động.
o Kiểm tra mẫu giấy.
- Các ứng dụng nhận dạng khác o Nhận dạng dấu vân tay của con người. o
Nhận dạng gương mặt con người.
o Nhận dạng chữ viết tay. o Nhận dạng ngôn ngữ ký hiệu. o Nhận dạng
chữ ký.
o Nhận dạng màu da người, ảnh khỏa thân.
o Phân tích chữ viết tay. o Chấm điểm trắc nghiệm bằng máy.
Ví dụ như một ứng dụng nhận dạng dấu vân tay sẽ thực hiện các công việc sau:
- Đầu tiên, nhận vào hình ảnh dấu vân tay của một người.
- Tiếp theo, sử dụng các thuật toán xử lý ảnh để làm lấy rõ các đặc điểm riêng
biệt của từng dấu vân tay.
- Tiếp theo, áp dụng các giải thuật của trí tuệ nhân tạo để giúp ứng dụng học
được các đặc điểm dấu vân tay và lưu trữ vào cơ sở dữ liệu.
- Cuối cùng, ứng dụng có thể nhận dạng dấu vân tay thông qua việc so khớp
hình ảnh dấu vân tay với các dữ liệu được lưu trong cơ sở dữ liệu.
Các công việc chính trong xử lý ảnh bao gồm các bước sau:
8
Xử lý ảnh
Tiền xử lý ảnh
Phân đoạn
Mô tả hình ảnh
Nhận dạng
Hậu xử lý
1.9. HỆ MÀU RGB
Trong hệ màu RGB, mỗi giá trị màu là tổ hợp của ba màu Red (đỏ), Green (xanh
lá cây), Blue (xanh da trời). RGB là hệ màu chuẩn của TV, máy tính.
Những diễn giải cụ thể về hệ màu này sẽ được nói rõ ở môn học Kỹ thuật đồ họa.
Dưới đây là khối lập phương thể hiện sự kết hợp của 3 màu RGB
9
Xử lý ảnh
10
Xử lý ảnh
Chương II cung cấp cho người học các kiến thức về các giải thuật xử lý điểm ảnh –
mảng kiến thức cơ bản nhất trong xử lý ảnh để có thể tìm hiểu được các thuật toán nâng
cao hơn ở các chương sau. Các thao tác xử lý điểm ảnh được chia làm 3 dạng. 3 dạng đó
là:
• Biến đổi ảnh (Transforms): là chuyển các giá trị của ảnh gốc sang dạng
tương đương với ảnh gốc. Ví dụ: chuyển đổi ảnh màu RGB sang ảnh mức
xám hoặc tone màu Sepia…
• Thao tác trên điểm ảnh (Point operations): là quá trình thay đổi giá trị mức
xám của ảnh mà không cần quan tâm đến giá trị các điểm lân cận. Các
thao tác trên điểm ảnh là các thao tác đơn giản nhất và thường được sử
dụng trong tiền xử lý ảnh.
• Xử lý lân cận (Neighbourhood processing): là thay đổi giá trị của điểm ảnh
dựa trên thông tin của các điểm lân cận của điểm được xử lý. Ví dụ: phục
hồi điểm ảnh bị nhiễu bằng cách tính giá trị các điểm lân cận, làm nhòe
ảnh, nét ảnh...
Các thao tác toán học trên điểm ảnh thường được thực hiện bằng cách áp dụng một
hàm số có dạng y=f(x) lên điểm ảnh.
• Hàm số f(x) có thể là các phép toán cộng, trừ, nhân, chia… x là
11
Xử lý ảnh
Tăng/giảm độ sáng của ảnh mức xám hay còn gọi là “trượt lược đồ ảnh”.
Tăng/giảm độ sáng của ảnh mức xám là cộng từng giá trị mức xám của ảnh với
một hằng số C.
Nếu tăng độ sáng ảnh th C>0, ngược lại giảm độ sáng thì C<0.
Để chuyển ảnh màu RGB sang ảnh mức xám thì phải thực hiện biến đổi giá trị
màu RGB sang giá trị màu mức xám.
Công thức chung cho việc chuyển đổi là nhân mỗi giá trị trên từng kênh màu của
ảnh RGB với một hệ số tương ứng.
Với:
• x.Red, x.Green, x.Blue là giá trị đỏ, xanh lá cây, xanh da trời của x.
rCoeff, gCoeff, bCoeff là các hệ số nhân tương ứng với từng kênh màu đỏ,
xanh lá cây, xanh da trời.
12
Xử lý ảnh
Để chuyển ảnh màu RGB sang ảnh nhị phân, thực hiện các bước sau:
• Thực hiện việc biến đổi giá trị theo công thức sau:
13
Xử lý ảnh
Ảnh tone màu Sepia thực chất là ảnh màu RGB đã thông qua giải thuật biến đổi
giá trị của các thành phần màu. Kết quả là ảnh màu ban đầu sẽ có tone màu ấm hơn. Ý
tưởng chính của giải thuật này:
o
o o
Lấy phần bù ảnh hay là lấy màu âm bản của ảnh. Các loại ảnh khác nhau thì có
công thức lấy phần bù khác nhau, cụ thể như sau:
14
Xử lý ảnh
Hình II . 5 . Ph ầ n bù ả nh nh ị phân
Hình II . 6 . P h ầ n bù ả nh m ứ c xám
▪ Với xr, xg, xb là giá trị màu Red, Green, Blue của điểm ảnh x đang
xét.
15
Xử lý ảnh
Như đã biết, mỗi điểm ảnh của ảnh màu RGB được cấu tạo bởi 3 thành phần Red,
Green, Blue. Lọc kênh ảnh màu để lấy ra các giá trị màu trên từng kênh riêng biệt. Giải
thuật được trình bày như sau:
Lần lượt trên từng điểm ảnh: o Giữ nguyên giá trị
màu của kênh màu muốn lấy. o Đưa giá trị màu
Đảo kênh ảnh là hoán đổi vị trí giá trị màu Red, Green, Blue trên từng điểm ảnh
cho nhau. Giải thuật này được thực hiện như sau:
Lần lượt trên từng điểm ảnh, thực hiện phép thay thế:
o x.Red=x.Green; x.Green=x.Blue; x.Blue=x.Red.
16
Xử lý ảnh
Tăng/giảm giá trị trên từng kênh màu nhằm làm cho ảnh có màu sắc như mong
muốn. Ví dụ: ảnh dư màu đỏ và thiếu màu xanh lá cây thì để màu sắc ảnh đẹp hơn cần
thực hiện giảm màu đỏ và tăng màu xanh cho ảnh. Ý tưởng của giải thuật này như sau:
Lần lượt trên từng điểm ảnh, áp dụng các hàm số:
o o
o
o
Với:
▪ x.Red, x.Green, x.Blue là thành phần màu Red, Green, Blue của
điểm x.
2.10. TỔ CHỨC ĐỒ
17
Xử lý ảnh
Tổ chức đồ là một đồ thị cho biết số lần xuất hiện của mỗi giá trị mức xám trong
ảnh.
Dựa vào tổ chức tổ, người ta có thể biết được ảnh là ảnh tối, ảnh tối đều, ảnh sáng,
ảnh sáng đều, ảnh có độ tương phản đều hay ảnh mờ…
• Ảnh tối: các giá trị mức xám tập trung co cụm lại gần gốc toạ độ (khu vực
thể hiện các giá trị mức xám tối) và không có giá trị mức xám sáng.
• Ảnh tối đều: các giá trị mức xám phân bố khá đều trên dãy mức xám tối,
giá trị mức xám sáng rất ít.
Hình II . 13 . Ả nh t ố i đ ề u và t ổ ch ứ c đ ồ
• Ảnh sáng: các giá trị mức xám tập trung co cụm lại ở khoảng giá trị 255
trên trục Ox và không có giá trị mức xám tối.
18
Xử lý ảnh
Hình II . 14 . Ả nh sáng và t ổ ch ứ c đ ồ
• Ảnh sáng đều: các giá trị mức xám phân bố khá đều trên dãy mức xám
sáng, giá trị thể hiện màu tối rất ít.
Hình II . 15 . Ả nh sáng đ ề u và t ổ ch ứ c đ ồ
• Ảnh có độ tương phản đều: các giá trị mức xám từ giữa trục Ox phân bố
khá đều về 2 hướng.
Hình II . 16 . Ả nh tương ph ả n đ ề u và t ổ ch ứ c đ ồ
• Ảnh mờ: không có giá trị mức xám tối và giá trị mức xám sáng ở đầu và
cuối trục Ox.
19
Xử lý ảnh
Hình II . 17 . Ả nh m ờ và t ổ ch ứ c đ ồ
2.11. VẼ TỔ CHỨC ĐỒ
• Nếu ảnh không phải là ảnh mức xám thì chuyển sang ảnh mức xám.
• Thống kê số lần xuất hiện của các giá trị mức xám, bằng cách:
o Tạo ra một mảng Hist kiểu số nguyên, có độ lớn là 256 để lưu số lần xuất
hiện của các giá trị mức xám từ 0->255. Các giá trị ban đầu của mảng đều
bằng 0. o Lần lượt trên từng điểm ảnh, nếu điểm ảnh có giá trị mức xám là i
thì tăng giá trị phần tử Hist[i] lên 1 đơn vị.
o Trục Oy thể hiện số lần xuất hiện của từng giá trị mức xám có trong ảnh
(các giá trị trong mảng Hist).
Ảnh có tổ chức đồ tập trung ở cụm nào đó đôi khi sẽ làm ảnh không đẹp vì đó là
biểu hiện của ảnh có độ tương phản thấp. Căng tổ chức đồ nhằm mục đích giãn các giá trị
đang co cụm ra xa hơn. Nếu chọn các giá trị căng hợp lý thì ảnh kết quả sẽ đẹp hơn.
20
Xử lý ảnh
Ảnh gốc có tổ chức đồ tập trung từ khoảng 70->150, các mức xám tối và mức xám
sáng không có nhiều làm cho độ tương phản của ảnh thấp. Nhận thấy rằng tấm ảnh phía
trên không rõ nét là do ảnh bị dư sáng. Như vậy để cho ảnh dễ nhìn hơn thì cần phải tăng
độ tối cho ảnh và khi căng tổ chức đồ theo nhận xét trên thì tổ chức đồ mới sẽ có các giá
trị mức xám giãn về phía gốc trục Ox và ảnh kết quả sẽ dễ nhìn hơn.
• Chọn giá trị đoạn mức xám cũ là [a,b]. Ví dụ, [a,b] = [70,140].
• Chọn giá trị đoạn mức xám mới là [c,d]. Ví dụ, [c,d] = [20,160].
• Lần lượt trên từng điểm ảnh, thực hiện công thức sau:
j = (d-c)/(b-a)*(i-a)+c
o Với:
21
Xử lý ảnh
▪ [a,b] là đoạn giá trị mức xám xác định ban đầu.
▪ [c,d] là đoạn giá trị mức xám muốn được căng tới.
Căng tổ chức đồ sẽ đạt được kết quả tốt nếu như có hiểu biết về tổ chức đồ của
ảnh. Trong trường hợp không biết nhận xét tổ chức đồ thì có một thuật toán tự động căng
các giá trị mức xám ra, gọi là đều hóa tổ chức đồ. Khi đều hóa tổ chức đồ thì ảnh kết quả
có khi đẹp hơn hoặc xấu hơn so với ảnh gốc.
Dựa vào tổ chức đồ của ảnh Đức Phật Thích Ca Mâu Ni bên dưới, ta nhận thấy
rằng ảnh có độ tương phản khá đều và các giá trị mức xám tối, mức xám sáng không có
nhiều. Nếu ảnh có được sự phân bố các giá trị mức xám đồng đều ở khoảng tối và sáng
thì chắc chắn ảnh sẽ đẹp hơn.
Sau khi thực hiện thuật toán đều hóa, ảnh kết quả có các giá trị mức xám đồng đều
hơn, ảnh kết quả sáng hơn so với ảnh gốc và các chi tiết nổi bật hẳn lên như: vầng hào
quang, gương mặt, con nai, lá cây, hoa sen và núi...
22
Xử lý ảnh
Để thực hiện đều hóa tổ chức đồ, thực hiện các bước sau:
Ví dụ:
23
Xử lý ảnh
Ở phần xử lý điểm (point processing) thì một tấm ảnh sẽ được thay đổi bằng cách
áp dụng một hàm số lên từng điểm ảnh. Xử lý lân cận là dạng mở rộng của xử lý điểm.
Phương pháp này tính giá trị mới của một điểm ảnh cho dựa vào giá trị của các điểm lân
cận. Mỗi điểm ảnh sẽ có 8 điểm lân cận sau:
p(i-1,j-1) p(i-1,j) p(i-1,j+1)
Người ta thường dùng mặt nạ (mask) trong xử lý lân cận. Mặt nạ thường là một
hình chữ nhật có chiều dài và chiều rộng là số lẻ. Ví dụ: sử dụng mặt nạ để lọc điểm ảnh.
Sự kết hợp giữa mặt nạ và hàm thì tạo thành bộ lọc (filter). Nếu một giá trị mức
xám được tính bởi một hàm tuyến tính của tất cả các giá trị trong mặt nạ với các điểm lân
cận của nó thì bộ lọc đó được gọi là bộ lọc tuyến tính (linear filter).
Một bộ lọc tuyến tính được cài đặt bằng cách nhân tất cả các phân tử trong mặt nạ
với các phần tử lân cận tương ứng, sau đó cộng các tích lại với nhau.
24
Xử lý ảnh
Công thức tính giá trị kết quả mới cho điểm p(i,j):
Ví dụ:
25
Xử lý ảnh
• Tính ảnh kết quả? o Bước 1: Chập mặt nạ từ góc trên bên phải
của ảnh.
Giá trị mới của điểm ảnh có giá trị 50 được tính như sau:
Giá trị mới của điểm ảnh có giá trị 70 được tính như sau:
26
Xử lý ảnh
Trong ví dụ trên, ảnh kết quả nhỏ hơn ảnh gốc 2 dòng, 2 cột vì đã bỏ qua đường
biên của ảnh khi áp dụng bộ lọc lên ảnh.
Trong thực tế, khi áp dụng bộ lọc lên ảnh thì thường dùng hai phương pháp để xử
lý đường biên, đó là bỏ qua đường biên hoặc thêm biên giả.
Với bộ lọc nxn, khi bỏ qua đường biên thì ảnh kết quả sẽ bị mất đi (n-1) dòng và
(n-1) cột.
Ví dụ: ảnh gốc có kích thước là 5x5 và bộ lọc có kích thước là 3x3.
Công thức (n-1) = (3-1) = 2, vậy ảnh kết quả sẽ mất đi 2 dòng, 2 cột và ảnh
kết quả có kích thước là 3x3.
Bằng cách thêm biên giả cho ảnh gốc, khi chập ảnh gốc với bộ lọc thì ảnh kết quả
sẽ có kích thước bằng với ảnh gốc. Số dòng và cột được tính thêm vào biên giả là (n-1).
Ví dụ: ảnh gốc có kích thước là 5x5 và bộ lọc có kích thước là 3x3.
Công thức (n-1) = (3-1) = 2, vậy ảnh gốc sau khi thêm biên giả sẽ có kích
thước là 7x7. Sau đó, áp mặt nạ lên ảnh gốc mới, khi đó ảnh kết quả sẽ có
kích thước là 5x5 tức là kích thước ảnh kết quả bằng với kích thước ảnh
gốc trước khi thêm biên giả.
3.3. BỘ LỌC
Thành phần có tần số thấp là những thành phần ảnh mà các giá trị mức xám ở gần
nhau trong ảnh ít có sự khác biệt, chẳng hạn như nền ảnh (background), da (skin).
Thành phần có tần số cao là những thành phần ảnh mà các giá trị mức xám ở gần
nhau trong ảnh có sự khác biệt rõ rệt, chẳng hạn như đường biên (edge), nhiễu (noise).
28
Xử lý ảnh
Lọc tần số thấp là giảm bớt hay loại bỏ đi các thành phần có tần số thấp. Đặc điểm
của bộ lọc tần số thấp là tổng các giá trị trong mặt nạ bằng 0. Bộ lọc tần số thấp thường
dùng để phát hiện đường biên.
Ví dụ:
Áp dụng bộ lọc ở trên lên ảnh sẽ lấy được đường biên dọc của ảnh.
Lọc tần số cao là giảm bớt hay loại bỏ đi các thành phần có tần số cao. Bộ lọc tần
số cao thường là các mặt nạ nxn mà các phần tử trong mặt nạ có giá trị là 1/(nxn). Bộ lọc
tần số cao còn được gọi là bộ lọc trung bình (average filter) và có xu hướng làm mờ ảnh,
làm mờ đường biên.
Ví dụ:
29
Xử lý ảnh
Khi áp dụng bộ lọc vào ảnh, giá trị mức xám mới của một điểm sẽ rơi vào 3 trường
hợp sau:
values)
30
Xử lý ảnh
Mục đích của việc phục hồi ảnh là loại bỏ hoặc giảm bớt các điểm ảnh hay phần
ảnh bị hư, kém chất lượng. Kỹ thuật phục hồi ảnh thường được thực hiện bằng thao tác
xử lý lân cận.
4.1. NHIỄU
Nhiễu được định nghĩa như là sự suy giảm chất lượng tín hiệu ảnh do sự nhiễu
loạn bất thường từ bên ngoài.
Nếu hình ảnh được truyền từ nơi này sang nơi khác thông qua các phương tiện
truyền tải như vệ tinh, cáp mạng, sóng vô tuyến... thì hình ảnh có thể bị nhiễu.
Nhiễu có nhiều dạng nhưng nếu biết được dạng nhiễu thì sẽ có cách khử nhiễu phù
hợp.
Nhiễu muối tiêu hay còn gọi là impulse noise, shot noise, binary noise. Nhiễu
muối tiêu làm xuất hiện những điểm đen, trắng khắp ảnh.
31
Xử lý ảnh
Đây là dạng lý tưởng hóa của nhiễu trắng được gây ra bởi sự thay đổi bất thường
của tín hiệu. Nhiễu Gaussian thường thấy khi xem TV. Mô hình của nhiễu Gaussian được
mô tả như sau:
Nhiễu lốm đốm gần giống như nhiễu Gaussian nhưng không tuân theo quy luật
nhất định. Giá trị của điểm ảnh bị nhiễu bằng giá trị gốc của điểm ảnh nhân với một số
ngẫu nhiên nên còn gọi là multiplication noise.
Nhiễu dạng này gây ra nhiều khó khăn, nhất là trong ứng dụng rada.
32
Xử lý ảnh
Người ta thường dùng các bộ lọc trung bình để làm mờ ảnh, khi ảnh bị mờ thì các
giá trị nhiễu cũng bị mờ theo.
Ví dụ, khử nhiễu với các bộ lọc trung bình 3x3, 5x5, 7x7, 9x9.
33
Xử lý ảnh
Hình IV.5. Ảnh khử nhiễu lần lượt qua các bộ lọc 3x3, 5x5, 7x7, 9x9
Với phương pháp lọc trung bình thì ảnh kết quả có xu hướng bị mờ. Bộ lọc càng
lớn thì ảnh sẽ càng mờ đi. Để cải thiện tình trạng trên, phương pháp lọc trung vị ra đời
với ý tưởng như sau:
• Giá trị trung vị là giá trị nằm giữa ở một dãy số được xếp thứ tự.
• Nếu dãy có 2n+1 số thì giá trị trung vị là số thứ n.
• Nếu dãy có 2n số thì giá trị trung vị là trung bình của số thứ n và n+1.
Lọc trung vị là một ví dụ của lọc không tuyến tính sử dụng ma trận 3x3, kết quả là
giá trị nằm giữa của các giá trị trong mặt nạ sau khi sắp xếp.
Ví dụ:
• Kết quả là giá trị 255 sẽ được thay bằng giá trị 60.
34
Xử lý ảnh
Hạn chế của phương pháp lọc trung vị là chậm, do mỗi lần tính giá trị mới phải
thực hiện sắp xếp nxn lần.
Hình IV.6. Lọc nhiễu muối tiêu bằng phương pháp trung vị
Phân đoạn ảnh là thao tác phân một ảnh vào các nhóm ảnh hoặc chia nhóm các đối
tượng trong ảnh. Phân đoạn ảnh được sử dụng trong các ứng dụng nhận dạng ảnh.
Để phân nhóm một ảnh, người ta sẽ so sánh từng điểm trong ảnh với một giá trị ngưỡng
(threshold) được chọn trước, sau đó sẽ quyết định điểm đang xét thuộc vào nhóm nào của
ảnh. Giá trị ngưỡng (threshold) là một phần quan trọng trong phân đoạn ảnh.
35
Xử lý ảnh
Để phân các giá trị trong ảnh ra thành 2 nhóm, người ta thường dùng giá trị
ngưỡng đơn (single threshold). Ví dụ, để chuyển ảnh mức xám sang ảnh nhị phân, đầu
tiên chọn một giá trị ngưỡng T, sau đó xét từng điểm trên ảnh mức xám với giá trị T để
quyết định điểm đó sẽ là màu đen hay màu trắng. Công thức tổng quát:
Phương pháp này chọn ra hai giá trị ngưỡng T1 và T2. Nếu giá trị đang xét thuộc
đoạn [T1,T2] thì phân vào lớp A, ngược lại thì phân vào lớp B. Công thức tổng quát:
Ví dụ: dùng 2 giá trị ngưỡng để đưa ảnh mức xám về ảnh nhị phân.
Giá trị ngưỡng rất hữu ích trong các trường hợp sau đây:
36
Xử lý ảnh
• Khi muốn loại bỏ những chi tiết không cần thiết để tập trung vào các chi
tiết chính của ảnh. Ví dụ như hình hạt gạo ở phía dưới, khi chuyển ảnh mức
xám sang ảnh nhị phân sẽ làm cho hạt gạo rõ hơn, từ đó hỗ trợ trong việc
xác định hình dạng, kích thước, cũng như chất lượng gạo.
• Làm lộ ra các chi tiết ảnh bị ẩn. Ảnh gốc bên dưới là một tờ giấy trắng, giả
sử một tờ giấy đủ chất lượng là nếu toàn bộ giá trị mức xám của nó phải lớn
hơn giá trị mức xám 241, như vậy tờ giấy bên dưới không phải là tờ giấy đủ
chất lượng.
Hình V . 5 . Lo ạ i b ỏ n ề n
37
Xử lý ảnh
Trong vài trường hợp thì giá trị ngưỡng đơn hay đôi đều không thể phân đoạn ảnh
được hoàn hảo. Chẳng hạn như tấm ảnh dưới đây.
Hình V.6. Ảnh mức xám có giá trị thay đổi từ tối đến sáng
Ảnh có giá trị thay đổi từ tối đến sáng nếu chỉ dùng một giá trị ngưỡng đơn cố
định để tách đối tượng trong ảnh thì không được. Giả sử khi chọn giá trị ngưỡng đơn
T=100, ảnh kết quả ảnh như sau:
Rõ ràng trong trường hợp này thì giá trị ngưỡng đơn hay đôi đều không phù hợp.
Ảnh trên có các giá trị mức xám đi từ tối đến sáng theo chiều từ trái qua phải, vì vậy để
lấy được các đối tượng trong ảnh thì chia ảnh thành nhiều phần theo chiều dọc và mỗi
phần sẽ chọn một giá trị ngưỡng phù hợp. Cụ thể ở ảnh này sẽ chia thành 4 phần như hình
bên dưới, và mỗi phần sẽ chọn một giá trị ngưỡng thích hợp.
38
Xử lý ảnh
Hình V.8. Chia ảnh và áp dụng giá trị ngưỡng thích nghi bằng phương pháp Hotsu
Đường biên chứa các thông tin rất quan trọng và hữu dụng của ảnh. Đường biên
được dùng để xác định kích thước của các đối tượng trong ảnh. Để phát hiện đường biên
thì có nhiều cách làm.
Ở cột 2 và cột 3 của hình bên phải, các giá trị mức xám có sự khác biệt rõ rệt và sự
khác biệt giữa chúng vượt trên 100. Các giá trị mức xám ở cột 3 chính là giá trị biên của
một đối tượng nào đó. Ý tưởng chính của các thuật toán phát hiện đường biên là tìm cách
lấy được những giá trị mức xám có sự khác biệt lớn như vậy. Các thuật toán phát hiện
đường biên là dùng kết hợp bộ lọc đường biên dọc và ngang hoặc dùng phương pháp
Homogenity Edge, phương pháp Difference Edge, hoặc 1 vài bộ lọc tần số thấp.
5.6.1. Phát hiện đường biên bằng bộ lọc đường biên dọc và ngang
Một trong những thuật toán phát hiện đường biên là sử dụng kết hợp bộ lọc đường
biên dọc và đường biên ngang để lấy được toàn bộ đường biên của ảnh. Công thức tổng
quát như sau:
• Gọi px là kết quả lọc đường biên song song với trục Oy. (đường biên dọc).
• Gọi py là kết quả lọc đường biên song song với trục Ox. (đường biên ngang).
• Gọi p là kết quả tổng hợp, thì giá trị của p được tính như sau:
Trong thực tế, để thuận lợi cho việc cài đặt thuật toán, người ta thường sử
dụng một trong hai công thức sau:
39
Xử lý ảnh
Hình V.9. Lọc đường biên kết hợp bộ lọc đường biên dọc và ngang
• Dưới đây là một số bộ lọc đường biên dọc và ngang thông dụng:
MASK Gx Gy
Sobel -1 0 1 -1 -2 -1
-2 0 2 0 0 0
-1 0 1 1 2 1
Prewitt -1 0 1 -1 -1 -1
-1 0 1 0 0 0
-1 0 1 1 1 1
Kirsh 5 -3 -3 -3 -3 -3
5 0 -3 -3 0 -3
5 -3 -3 5 5 5
Gọi x là điểm đang xét thì các giá trị xung quanh x sẽ như sau:
40
Xử lý ảnh
5.6.4. Phát hiện đường biên bằng một số bộ lọc tần số thấp
41
Xử lý ảnh
1 -4 1 1 -8 1 1 4 1
0 1 0 1 1 1 -2 1 -2
Sau khi phát hiện ra đường biên ảnh, người ta thường dùng thuật toán mã hóa
đường biên để lưu những giá trị biên nhằm tiết kiệm không gian lưu trữ. Khi cần xem lại
hình ảnh đường biên thì sẽ thực hiện giải mã biên.
Có nhiều cách lưu đường biên của ảnh và cách lưu đường biên được sử dụng nhiều
nhất là mã hóa đường biên. Các bước mã hóa đường biên như sau:
• Chọn hướng đi của đường biên, thường chọn ngược chiều kim đồng hồ.
• Xác định hướng di chuyển của điểm ảnh tiếp theo, lưu hướng di chuyển.
Ví dụ:
42
Xử lý ảnh
• Một điểm ảnh có 8 điểm liên thông với nó tức là từ 1 điểm ảnh có 8 hướng
đi khác nhau và được mã hóa thành 8 con số từ 1->8:
o Bước đầu tiên, chọn điểm bắt đầu đường biên bằng cách xét từ trái qua
phải, từ trên xuống dưới, gặp điểm thuộc đường biên đầu tiên thì chọn
điểm đó là điểm bắt đầu. Vậy, chọn điểm (2,0) là điểm bắt đầu.
o Tiếp theo, từ điểm bắt đầu lần lượt mã hóa đường biên theo sơ đồ hướng
đi của 8 điểm liên thông đã chọn. Kết quả mã hóa đường biên sẽ là:
(2,0) 1, 8, 8, 7, 6, 6, 5, 4, 4, 3, 2.
Để giải mã được cách mã hóa ở trên, cần có những thông tin sau:
43
Xử lý ảnh
o Đầu tiên, xác định tọa độ điểm bắt đầu của đường biên
chính là tọa độ (x,y) trong tập tin mã hóa đường biên. o Tiếp
theo, lần lượt lấy các con số trong tập tin mã hóa so khớp với
hướng đi trong sơ đồ mã hóa để xác định được tọa độ điểm
biên tiếp theo, sau đó vẽ điểm đó lên ảnh kết quả.
44
Xử lý ảnh
Xử lý hình thái học là một nội dung trong xử lý ảnh. Nội dung của phần này sẽ nghiên
cứu các thao tác xử lý hình thái học, bao gồm:
Tịnh tiến ảnh là di chuyển các điểm ảnh theo một đoạn d theo một hướng cho
trước. Gọi:
• Aw là kết quả tịnh tiến ảnh A theo hướng ow một đoạn |ow|, công thức tính
Aw: Aw={(a,b) + (x,y) : (a,b) A}
45
Xử lý ảnh
Aw={(a,b)+(2,2) : (a,b) A}
Phản chiếu của một điểm ảnh là điểm đối xứng của nó qua một phương trình
đường thẳng y=-x. Gọi:
Ví dụ:
Ảnh
phản
Ảnh
gốc
Giãn ảnh và xói mòn ảnh là những thao tác cơ bản bậc một trong xử lý hình thái
học bởi vì tất cả các thao tác khác đều được thực hiện dựa trên sự kết hợp của hai phương
pháp này.
46
Xử lý ảnh
Giãn ảnh là quá trình giãn một ảnh A theo các hướng và độ lớn cho trước dựa vào
các điểm trong thành phần cấu trúc B (structuring elements hay kernel). Công thức:
Công thức trên có nghĩa là với mọi điểm x thuộc B thì Ax là kết quả tịnh tiến của
ảnh A theo điểm x. Sau đó, lấy hợp tất cả các ảnh Ax để được ảnh kết quả.
Tịnh tiến A với các tọa độ trong B được các kết quả như sau:
Lấy hợp các ảnh tịnh tiến được ảnh kết quả:
47
Xử lý ảnh
Ví dụ:
Cho trước ảnh A và thành phần cấu trúc B. Phần xói mòn của A bởi B là tập hợp
các điểm w(x,y) sao cho Bw thuộc A . Các bước thực hiện tìm xói mòn của A bởi B:
• Bước 2: Kết quả xói mòn ảnh chính là hợp của các điểm đã tìm được ở
bước 1.
Công thức:
48
Xử lý ảnh
Ví dụ minh họa:
49
Xử lý ảnh
Kết hợp giữa giãn ảnh và xói mòn ảnh có thể phát hiện được đường biên ảnh. Cho
A là ảnh chứa đối tượng cần phát hiện đường biên và B là thành phần cấu trúc gồm các
điểm đối xứng, khi đó:
Công thức này có nghĩa là lấy A hiệu với kết quả xói mòn của A theo B.
Công thức này có nghĩa là lấy kết quả giãn của A theo B hiệu với A.
• Đường dốc hình thái học được phát hiện theo công thức:
Công thức này có nghĩa lấy kết quả giãn của A theo B hiệu với kết quả xói
mòn của A theo B.
Ví dụ:
50
Xử lý ảnh
Ví dụ minh họa:
51
Xử lý ảnh
Khe hở và phần đóng được xem như là các thao tác bậc hai trong xử lý hình thái
học bởi vì chúng được xây dựng dựa trên cơ sở của giãn và xói mòn.
Cho A là ảnh gốc và thành phần cấu trúc B thì công thức khe hở của A theo B như
sau:
Công thức này có nghĩa là khe hở của A theo B là lấy phần kết quả của A xói mòn
theo B đem giãn với B.
Ví dụ:
52
Xử lý ảnh
Ví dụ minh họa:
Hình VI . 8 . Khe h ở
Cho trước A là ảnh gốc và thành phần cấu trúc B thì công thức phần đóng của A
theo B như sau:
Công thức này có nghĩa là phần đóng của A bởi B là kết quả của A giãn với B đem
xói mòn với B.
Ví dụ:
Ví dụ minh họa:
Hình VI . 9 . Ph ầ n đóng
53
Xử lý ảnh
Khi sử dụng kết hợp khe hở và phần đóng, có thể khử được nhiễu dạng muối tiêu
theo công thức khử nhiễu sau:
Ví dụ minh họa:
( A B) ( A B) B
Hình VI.10. Lọc nhiễu muối tiêu bằng khe hở và phần đóng
Tô màu 4 liên thông là một trong những phương pháp tô màu cổ điển trong xử lý ảnh.
Giải thuật được thực hiện như sau:
54
Xử lý ảnh
Mã hóa và nén ảnh để tiết kiệm không gian lưu trữ. Có 2 dạng nén ảnh là nén ảnh mất
thông tin và nén ảnh không mất thông tin.
Nén ảnh không mất thông tin là phương pháp nén ảnh mà khi giải nén, ảnh kết quả
bảo toàn được thông tin của ảnh gốc. Khi giải nén sẽ nhận được ảnh giống như ảnh gốc
trước khi nén.
Nén ảnh mất thông tin là phương pháp nén ảnh bỏ qua những thông tin ít quan trọng
(tần số xuất hiện thấp) trong ảnh được nén. Ảnh sau khi nén sẽ không thực sự giống ảnh
gốc nhưng cũng không khác quá nhiều, các thông tin quan trọng trong ảnh gốc đều được
giữ lại.
Phần này đề cập đến hai phương pháp nén ảnh không mất thông tin là mã hóa
Huffman và mã hóa Runlength.
Thay vì sử dụng mã có độ dài cố định (8 bits) để biểu diễn một giá trị mức xám,
người ta sử dụng mã có độ dài thay đổi nhằm tốn ích không gian lưu trữ ảnh. Để thực
hiện mã hóa Huffman, cần có chương trình mã hóa ảnh và giải mã ảnh.
o Giá trị màu có tần số xuát hiện càng nhỏ thì độ dài của từ mã càng lớn.
55
Xử lý ảnh
▪ Thống kê số lần xuất hiện của từng giá trị màu trong ảnh đã cho.
▪ Sắp xếp các giá trị mức xám theo thứ tự giảm dần của tần số.
o Bước 1:
▪ Thủ tục lùi: ghép các giá trị và lưu vết.
o Bước 2:
▪ Thủ tục tiến: phân rã các giá trị trong thủ tục lùi và gán từ mã.
o Bước cuối:
▪ Ghép 2 giá trị có số lần xuất hiện nhỏ nhất (xn-1, xn) thành 1 giá trị
mới xn-1, n. Giá trị mới có giá trị bằng tổng số lần xuất hiện của 2
giá trị ban đầu.
o Sắp xếp lại các giá trị theo chiều giảm dần của số lần xuất hiện.
• Thủ tục tiến (ngược lại với thủ tục lùi): o Bước đầu tiên của thủ tục tiến
tương ứng với bước cuối cùng trong thủ tục lùi.
56
Xử lý ảnh
▪ Gán từ mã cho 2 giá trị sau khi tách bằng từ mã của giá trị ghép
thêm phần “đuôi” là 0 cho giá trị thứ nhất và 1 cho giá trị thứ hai.
• Bước khởi tạo: Thống kê số lần xuất hiện của mức xám
57
Xử lý ảnh
58
Xử lý ảnh
59
Xử lý ảnh
Các từ mã
trong bộ
mã
Huffman
được sinh
ra để nén
ảnh đã cho
Kết quả:
01101110110101110010010010111000010…
Mã hóa Runlength chủ yếu là dùng để mã hóa ảnh nhị phân. Ý tưởng của mã
Runlength là mã hóa một chuỗi số 0 và số 1 bằng cách lặp lại các số 0 và 1 trong mỗi
chuỗi. Mã hóa từng dòng riêng biệt, bắt đầu với số lượng số 0.
60
Xử lý ảnh
0 1 1 0 0 0 Dòng 1: 1 số 0, 2 số 1, 3 số 0
0 0 1 1 1 0 Dòng 2: 2 số 0, 3 số 1, 1 số 0
1 1 1 0 0 1 Dòng 3: 0 số 0, 3 số 1, 2 số 0, 1 số 1
0 1 1 1 1 0 Dòng 4: 1 số 0, 4 số 1, 1 số 0
0 0 0 1 1 1 Dòng 5: 3 số 0, 3 số 1
1 0 0 0 1 1 Dòng 6: 0 số 0, 1 số 1, 3 số 0, 2 số 1
Thực hiện mã hóa Runlength cho ảnh mức xám như sau:
Chú ý: Sau khi tách ra làm 4 ảnh thành phần, phải áp dụng thuật toán RLC cho các ảnh
0th, 1st, 2nd, 3rd như phần 7.2 đã trình bày thì mới kết thúc việc mã hóa.
62