Skip to content Skip to navigation

Connexions

You are here: Home » Content » TỒNG QUAN VỀ XỬ LÝ ẢNH

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

TỒNG QUAN VỀ XỬ LÝ ẢNH

Module by: NGUYEN TUAN. E-mail the author

Summary: CHƯƠNG 1

CHƯƠNG 1: TỒNG QUAN VỀ XỬ LÝ ẢNH

Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máy tính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này. Hai nhiệm vụ cơ bản của quá trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cung cấp cho các quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển.

Đã có rất nhiều công trình nghiên cứu tại nhiều quốc gia từ năm 1920 đến nay về xử lý ảnh đã góp phần thúc đẩy tiến bộ trong lĩnh vực này lớn mạnh không ngừng [GS. TS. Nguyễn Kim Sách].

Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhận ảnh dạng số hoặc tương tự) gửi đến máy tính. Dữ liệu ảnh được lưu trữ ở định dạng phù hợp với quá trình xử lý. Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnh nhằm thay đổi cấu trúc ảnh phù hơp với các ứng dụng khác nhau.

1.1 Chuyển ảnh màu thành ảnh xám

Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của ba màu cơ bản tạo ra bản màu khả kiến là Đỏ (R), Xanh lá (G) và Xanh biển (B) [Thomas 1892]. Trong mỗi pixel của ảnh màu, ba màu cơ bản R, G và B được bố trí sát nhau và có cường độ sáng khác nhau. Thông thường, mổi màu cơ bản được biểu diễn bằng tám bit tương ứng 256 mức độ màu khác nhau. Như vậy mỗi pixel chúng ta sẽ có 28x3=22428x3=224 size 12{2 rSup { size 8{8x3} } =2 rSup { size 8{"24"} } } {} màu (khoảng 16.78 triệu màu). Đối với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với tám bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng thông qua tám mặt phẳng bit theo độ xám.

Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc của ảnh và bỏ qua ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh màu thành ảnh xám là một công đoạn phổ biến trong các quá trình xử lý ảnh vì nó làm tăng tốc độ xử lý là giảm mức độ phức tạp của các thuật toán trên ảnh.

Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành mức xám tương ứng như sau:

G=α.CR+β.CG+δ.CBG=α.CR+β.CG+δ.CB size 12{G=α "." C rSub { size 8{R} } +β "." C rSub { size 8{G} } +δ "." C rSub { size 8{B} } } {}(1.1)

Trong đó các giá trị CR,CGCBCR,CGCB size 12{C rSub { size 8{R} } ,C rSub { size 8{G} } ital "và"C rSub { size 8{B} } } {} lần lượt là các mức độ màu Đỏ, Xanh lá và Xanh biển của pixel màu. Các hệ số α,β,δα,β,δ size 12{α,β, ital "và"δ} {}là các giá trị thay đổi tùy thuộc hệ màu. Trong luận văn sử dụng hai card thu nhận tín hiệu video hệ NTSC từ hai camera nên các hệ số sẽ là: α=0.29890,β=0.58662,δ=0.11448α=0.29890,β=0.58662,δ=0.11448 size 12{α=0 "." "29890",β=0 "." "58662", ital "và"δ=0 "." "11448"} {}. Do đó công thức (1.1) trở thành:

G = 0 . 29890 . C R + 0 . 58662 . C G + 0 . 11448 . C B G = 0 . 29890 . C R + 0 . 58662 . C G + 0 . 11448 . C B size 12{G=0 "." "29890" "." C rSub { size 8{R} } +0 "." "58662" "." C rSub { size 8{G} } +0 "." "11448" "." C rSub { size 8{B} } } {}

Chúng ta xem ảnh nguồn như một mảng hai chiều, duyệt qua từng pixel phần tử của mảng bằng công thức 1.1 chúng ta sẽ có được ảng xám kết quả như hình 1.2 sau:

Figure 1
Figure 1 (graphics1.png)
Figure 2
Figure 2 (graphics2.png)

Hình 1.2 Chuyển ảnh màu thành ảnh xám

1.2 Lược đồ xám của ảnh (Histogram)

Lược đồ xám của một ảnh số có các mức xám trong khoảng [0,L1][0,L1] size 12{ \[ 0,L - 1 \] } {} là một hàm rời rạc p(rk)=nk/np(rk)=nk/n size 12{p \( r rSub { size 8{k} } \) =n rSub { size 8{k} } /n} {}. Trong đó nknk size 12{n rSub { size 8{k} } } {} là số pixel có mức xám thứ rkrk size 12{r rSub { size 8{k} } } {}, n là tổng số pixel trong ảnh và k=0,1,2....L1k=0,1,2....L1 size 12{k=0,1,2 "." "." "." "." L - 1} {}. Do đó P(rk)P(rk) size 12{P \( r rSub { size 8{k} } \) } {}cho một xấp xỉ xác suất xảy ra mức xám rkrk size 12{r rSub { size 8{k} } } {}. Vẽ hàm này với tất cả các gia trị của kk size 12{k} {} sẽ biểu diễn khái quát sự xuất hiện các mức xám của một ảnh. Chúng ta cũng có thể thề hiện lược đồ mức xám của ảnh thông qua tần suất xuất hiện mỗi mức xám qua hệ tọa độ vuông góc Oxy. Trong đó, trục hoành biểu diễn số mức xám từ 0 đến N (số bit của ảnh xám). Trục tung biểu diễn số pixel của mỗi mức xám.

Figure 3
Figure 3 (graphics3.png)

Hình 1.3: Lược đồ xám của ảnh hình 1.2

1.3 Các bộ lọc không gian

Trong quá trình xử lý ảnh chúng ta có thể sử dụng các mặt nạ không gian nhằm làm thay đổi cấu trúc ảnh gọi là các bộ lọc không gian. Có hai loại lọc không gian là lọc không gian tuyến tính và lọc không gian phi tuyến.

1.3.1. Lọc tuyến tính

Lọc tuyến tính có các hàm dịch, hàm xung hoặc hàm phân tán điểm là các biến đổi Fourier ngược. Lọc thông thấp làm say giảm hoặc loại trừ các thành phần tần số cao trong miền Fourier và cho các tần số thấp đi qua. Các thành phần tần số cao đặc trưng cho các biên, các chi tiết làm nét trong ảnh, do đó hiệu quả của bộ lọc thông thấp là làm nhòe ảnh. Ngược lại với bộ lọc thông thấp, bộ lọc thông cao làm suy giảm các thành phần tần số thấp. Các thành phần này thể hiện qua các đặc trưng thay đổi chậm của ảnh như độ tương phản và cường độ sánh trung bình. Hiệu quả chung của các bộ lọc thông cao là làm rõ các biên và chi tiết. Ngoài ra còn có bộ lọc thông dãi nhằm giữ lại vùng tần số giữa thấp và cao. Nhiệm vụ chính của các bộ lọc này nhằm khôi phục ảnh, Một mặt nạ lọc tuyến tính 3x3 có đáp ứng như sau:

R = w 1 z 1 + w 2 z 2 + . . . . + w 9 z 9 R = w 1 z 1 + w 2 z 2 + . . . . + w 9 z 9 size 12{R=w rSub { size 8{1} } z rSub { size 8{1} } +w rSub { size 8{2} } z rSub { size 8{2} } + "." "." "." "." +w rSub { size 8{9} } z rSub { size 8{9} } } {}

Figure 4
Figure 4 (graphics4.png)
Trong đó wiwi size 12{w rSub { size 8{i} } } {} là phần tử thứ ii size 12{i} {}của mặt nạ và zizi size 12{z rSub { size 8{i} } } {} là giá trị độ xám của một pixel được ô thứ ii size 12{i} {}của mặt nạ chập lên.

Hình 1.4: Các vùng cơ bản của mạch lọc tuyến tính

1.3.2. Lọc phi tuyến

a. Bộ lọc Mean

Mạch lọc là một mặt nạ có kích thước nxnnxn size 12{nxn} {}, trong đó tất cả các hệ số đều bằng 1. Đáp ứng là tổng các mức xám của nxnnxn size 12{nxn} {}pixels chia cho nxnnxn size 12{nxn} {}. Ví dụ mặt nạ 3x3 thì đáp ứng là tổng mức xám của 9 pixels chia cho 9.

Table 1
1 1 1
1 1 1
1 1 1

1 9 × 1 9 × size 12{ { {1} over {9} } times } {}

Nhân chập mặt nạ với tất cả các pixel của ảnh gốc chúng ta sẽ thu được ảnh kết quả qua bộ lọc Mean theo công thức sau:

f [ i , j ] = 1 S k , l : N s ( k , l ) f [ i , j ] = 1 S k , l : N s ( k , l ) size 12{f \[ i,j \] = { {1} over {S} } Sum cSub { size 8{k,l:N} } {s \( k,l \) } } {}

Figure 5
Figure 5 (graphics5.png)
Figure 6
Figure 6 (graphics6.png)
Với f[i,j]f[i,j] size 12{f \[ i,j \] } {} là giá trị pixel kết quả, s(k,l)s(k,l) size 12{s \( k,l \) } {}là các giá trị pixel ảnh gốc được mặt nạ chập lên và S là kích thước mặt nạ.

Hình 1.5: Ảnh gốc và ảnh qua bộ lọc Mean

Bộ lọc Mean có vai trò làm trơn ảnh có thể xem như bộ lọc thông cao, nhưng lại làm mờ đường biên của các đối tượng bên trong ảnh, làm mất tín hiệu cận nhiễu và không lọc được nhiễu xung.

b. Bộ lọc Median

Để thực hiện lọc Median trong lân cận của một pixel chúng ta sắp xếp các giá trị của pixel và các lân cận, xác định trung vị Median và định giá trị pixel. Ví dụ như một lân cận 3x3 có các giá trị: 10, 20, 20, 20, 15, 20, 20, 25, 100. Các giá trị này được sắp xếp lại theo thứ tự từ thấp đến cao: 10, 15, 20, 20, 20, 20, 20, 25, 100. Giá trị median là 20. Do đó về nguyên lý thì mạch median có thể tách được các điểm có cường độ sáng lớn như nhiễu xung và lọc các điểm có cường độ sáng tức thì (xung) hay còn gọi là các nhiễu muối tiêu.

Figure 7
Figure 7 (graphics7.png)
Figure 8
Figure 8 (graphics8.png)

Hình 1.6: Ảnh gốc bị nhiễu muối tiêu và ảnh sau khi lọc Median

c. Bộ lọc Gauss

Về bản chất bộ lọc Gauss có phương thức tiến hành tương đồng với bộ lọc trung bình nhưng có thêm tác động của các trọng số. Các trọng số này được tính tỷ lệ với hàm Gauss theo khoảng cách tới điểm tính toán. Công thức tính giá trị cho từng pixel ảnh gốc theo lọc Gauss như sau:

g ( i , j ) = 1 N m , n : K G ( i m , j n ) × f ( m , n ) g ( i , j ) = 1 N m , n : K G ( i m , j n ) × f ( m , n ) size 12{g \( i,j \) = { {1} over {N} } Sum cSub { size 8{m,n:K} } {G \( i - m,j - n \) times f \( m,n \) } } {}

Trong đó g(i,j)g(i,j) size 12{g \( i,j \) } {}là giá trị độ xám pixel kết quả, N là kích thước cửa sổ, f(m,n)f(m,n) size 12{f \( m,n \) } {} là giá trị độ xám của pixel đang tác động, G(im,jn)G(im,jn) size 12{G \( i - m,j - n \) } {} là các trọng số. Các trọng số được tính toán tỷ lệ theo hàm Gauss bằng khoảng cách tới điểm tính toán.

G ( x , y ) = 1 2 πσ 2 e x 2 + y 2 2 G ( x , y ) = 1 2 πσ 2 e x 2 + y 2 2 size 12{G \( x,y \) = { {1} over {2 ital "πσ" rSup { size 8{2} } } } e rSup { size 8{ - { {x rSup { size 6{2} } +y rSup { size 6{2} } } over {2σ rSup { size 6{2} } } } } } } {}

Table 2
271272
73152317
15521275215
73152317
271272
14231423 size 12{ { {1} over {"423"} } } {}x

Thực hiện phép nhân chập giữa mặt nạ Gauss và ảnh gốc chúng ta thu được ảnh kết quả được xử lý bằng mạch lọc Gauss. Vai trò của bộ lọc Gauss cũng làm trơn ảnh như bộ lọc trung bình, tuy nhiên bộ lọc Gauss cho chất lượng ành kết quả cao hơn vì có sự tập trung trong số vào pixel đang xét tại vị trí trung tâm.

Figure 9
Figure 9 (graphics9.png)
Figure 10
Figure 10 (graphics10.png)

Hình 1.7: Ảnh gốc và ảnh xử lý bằng bộ lọc Gauss.

1.4. Tách biên đối tượng

Ảnh thu được từ các thiết bị ghi nhận sau khi qua bước tiền xừ lý sẽ đến quá trình phân tích ảnh. Có nhiều phương pháp phân tích ảnh trong đó tách biên đối tượng là một công cụ mạnh. Vai trò của tách biên chủ yếu là trích đặc trưng đối tượng theo đường biên ảnh và phân vùng ảnh dựa trên đường biên.

1.4.1 Phương pháp Canny

Là một phương pháp tách biên ảnh do Francis Canny tìm ra tại phòng thí nghiệm ảnh thuộc MIT. Quá trình tiến hành thuật toán trải qua một số bước như sau:

  1. Làm trơn ảnh bằng bộ lọc Gauss nhằm giảm thiểu ảnh hưởng của nhiễu và các chi tiết không mong nuôn trong cấu trúc ảnh.
  2. Tính gradient của ảnh nhờ một trong các toán tử:Roberts, Sobel hay Prewitt…

M ( j , j ) = g i 2 ( i , j ) + g j 2 ( i , j ) M ( j , j ) = g i 2 ( i , j ) + g j 2 ( i , j ) size 12{M \( j,j \) = sqrt {g rSub { size 8{i} } rSup { size 8{2} } \( i,j \) +g rSub { size 8{j} } rSup { size 8{2} } \( i,j \) } } {}

θ(i,j)=tan1[gj(i,j).gi(i,j)]θ(i,j)=tan1[gj(i,j).gi(i,j)] size 12{θ \( i,j \) ="tan" rSup { size 8{ - 1} } \[ g rSub { size 8{j} } \( i,j \) "." g rSub { size 8{i} } \( i,j \) \] } {}

  1. Xác định ngưỡng

M T ( i , j ) = { M ( i , j ) Nêu M ( i , j ) > T 0 Khác M T ( i , j ) = { M ( i , j ) Nêu M ( i , j ) > T 0 Khác size 12{M rSub { size 8{T} } \( i,j \) = left lbrace matrix { M \( i,j \) ital "Nêu"M \( i,j \) >T {} ## 0 ital "Khác" } right none } {}

Với T được chọn là các phần tử cạnh.

  1. Dựa vào hướng của dradient để loại bỏ những điểm không thực sự là biên. Chúng ta kiểm tra các điểm MT(i,j)MT(i,j) size 12{M rSub { size 8{T} } \( i,j \) } {}nếu có giá trị lớn hơn hai điểm lân cận dọc theo phương gradient θ(i,j)θ(i,j) size 12{θ \( i,j \) } {} thì giữ nguyên và ngược lại thì gán giá trị bằng 0.
  2. Dùng ngưỡng kép τ1τ1 size 12{τ rSub { size 8{1} } } {}τ2τ2 size 12{τ rSub { size 8{2} } } {} ( τ1τ1 size 12{τ rSub { size 8{1} } } {} < τ2τ2 size 12{τ rSub { size 8{2} } } {}) tạo ra các điểm trung gian nhằm nối liến các điểm biên đã xác định được từ trước theo phương thức sau:

Những điểm M(i,j)M(i,j) size 12{M \( i,j \) } {} có giá trị gradient lớn hơn τ2τ2 size 12{τ rSub { size 8{2} } } {} thì được xem là điểm biên. Những điểm M(i,j)M(i,j) size 12{M \( i,j \) } {} có giá trị gradient nhỏ hơn τ1τ1 size 12{τ rSub { size 8{1} } } {} thì loại bỏ. vối những điểm có giá trị gradient nằm trong khoảng τ1τ1 size 12{τ rSub { size 8{1} } } {}τ2τ2 size 12{τ rSub { size 8{2} } } {} thì kiểm tra thêm nếu nó liền kề với một điểm có gradient lớn hơn τ1τ1 size 12{τ rSub { size 8{1} } } {} thì điểm này được xem là điểm biên. Kết quả chúng ta sẽ thu được các đường biên tạo từ vô số các điểm biên liền kề liên tục.

Figure 11
Figure 11 (graphics11.png)

(a)

Figure 12
Figure 12 (graphics12.png)

(b)

Figure 13
Figure 13 (graphics13.png)

(c)

Hình 1.8: (a) Ảnh gốc; (b) Lọc Canny với ngưỡng 0 - 150; (c) Lọc Canny với ngưỡng 200 - 255.

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks