Tải bản đầy đủ (.pdf) (24 trang)

BÁO CÁO CUỐI KÌ MÔN XỬ LÝ ẢNH Y SINH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 24 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP Y SINH

BÁO CÁO MÔN HỌC
XỬ LÝ ẢNH Y SINH
GVHD: Th.S NGÔ BÁ VIỆT
Sinh viên thực hiện

MSSV

Nguyễn Ngọc Phương Uyên 17129060

TP.Hồ Chí Minh, tháng 11, năm 2019


BÁO CÁO MÔN XỬ LÝ ẢNH

MỤC LỤC
I.

LÝ THUYẾT MÔN HỌC
1. Tổng quan về xử lý ảnh......................................................................................... 2
2. Những nguyên tắc cơ bản (FUNDAMENTALS) ................................................. 2
3. Xử lý hình thái học (MORPHOLOGICAL IMAGE PROCESSING) ................. 3
4. Biến đổi Fourier .................................................................................................... 4
5. Bộ lọc và cân bằng Histogram. ............................................................................. 4
6. Bộ lọc trong miền tần số. ...................................................................................... 6
7. GUIDE. ................................................................................................................. 6
8. Phân đoạn và tách biên.......................................................................................... 6


9. Mạng Neural. ........................................................................................................ 7

II.

KẾT QUẢ THỰC HIỆN
1. Tổng quan về xử lý ảnh......................................................................................... 10
2. Xử lý hình thái học (MORPHOLOGICAL IMAGE PROCESSING) ................. 11
3. Bộ lọc và cân bằng Histogram. ............................................................................. 15
4. Biến đổi Fourier .................................................................................................... 16
5. GUIDE. ................................................................................................................. 17
6. Phân đoạn và tách biên.......................................................................................... 19

1


BÁO CÁO MÔN XỬ LÝ ẢNH

I. LÝ THUYẾT MÔN HỌC
1. Tổng quan về xử lý ảnh.
a. Điểm ảnh:
( M , N ) : Kích thước của ảnh.
L : Số mức xám.

L  2n
n: số bit biểu diễn mức xám cho một điểm ảnh.
b. Dung lượng ảnh (b):
b  M  N  n (bit)

b


CR 

M N n
8

(1.1)
(byte)

b(bytes)
Filesize(bytes)

(1.2)

c. Ảnh màu và ảnh xám:
- Mơ hình RGB biểu diễn màu như một điểm trong hình hộp đơn vị RGB, màu
đen có tọa độ (0 0 0) và màu trắng là (1 1 1).
- Nếu dùng 8 bit để biểu diễn một màu cơ bàn thì màu đen là (0 0 0) và màu
trắng là (255 255 255).
- Ảnh xám là một hệ thống màu có mơ hình màu đơn giản nhất với 256 cấp độ
xám biến thiên từ màu đen đến màu trắng. Sản phẩm được xuất ra sẽ có màu
trắng đen.
2. Những nguyên tắc cơ bản (FUNDAMENTALS).
a. Biến đổi âm bản:
G ( x, y )  ( L  1)  F ( x, y )

Ảnh đầu ra Phép biến đổi

(2.1)

Ảnh đầu vào


b. Biến đổi theo làm Log:

2


BÁO CÁO MÔN XỬ LÝ ẢNH

G ( x, y )  c  log(1  F ( x, y ))

(2.2)

c. Biến đổi theo lũy thừa:
G ( x, y )  c  f ( x, y ) 

(2.3)

3. Xử lý hình thái học (MORPHOLOGICAL IMAGE PROCESSING).
a. Giãn nở:
imdilate
- Làm ảnh to ra hay dầy hơn.
- Cho SE B di chuyển trên ảnh A, gốc của B phải trùng với điểm ảnh giá trị 1
của A, ảnh mới C là phản xạ của B nhưng phải có phần giao với A.

Hình 3.1. Sử dụng mặt nạ SE B di chuyển trên ảnh A ta được Ảnh C

-

Với ảnh xám, cho SE di chuyển trên ảnh A, cường độ sáng của điểm ảnh tại
gốc SE là giá trị cực đại các pixel bao bởi SE.


b. Ăn mòn:

imerode

c. Kết hợp cả hai:
- Khi nào cần lắp lỗ thì dùng CLOSING (giãn nở - ăn mòn).
- OPENING: Erosim rồi Dilatim, làm trơn biên.

3


BÁO CÁO MÔN XỬ LÝ ẢNH

d. Quan hệ giữa các điểm ảnh:
- Giả sử điểm ảnh p tại toạ độ (x, y). p(x,y) có 4 điểm lân cận gần nhất theo
chiều dọc và ngang (có thể coi lân cận 4 điểm ảnh theo hướng: Đông, Tây,
Nam, Bắc).
N 4 ( p)  ( x  1, y ); ( x, y  1); ( x, y  1); ( x  1, y )
(3.1)
-

Các điểm lân cận chéo ND(p): có thể coi lân cận chéo là 4 điểm ảnh theo
hướng: Đông-Nam, Đông-Bắc, Tây-Nam, Tây-Bắc.
N 4 ( p)  ( x  1, y  1); ( x  1, y  1); ( x  1, y  1); ( x  1, y  1) (3.2)

e. Các liên kết điểm ảnh:
- Liên kết 4: Hai điểm ảnh p và q được gọi là liên kết 4 nếu q nằm trong các lân
cận của p, tức q thuộc N4(p).
- Liên kết 8: Hai điểm ảnh p và q nằm trong các lân cận 8 của p, tức q thuộc

N8(p).
- Tập hợp các pixel liên kết với nhau gọi là thành phần liên kết (connected
component).
- Các pixel trong cùng một thành phần được gán một số gọi là nhãn đặt trong ma
trận nhãn Label Matrix.
4. Biến đổi Fourier.
M 1 N 1

G(u, v)   g ( x, y )e
x 0 y 0

g ( x, y ) 

1
MN

j

2 ( ux ) 2 j ( vy)

M
N

(4.1)
(4.2)

5. Bộ lọc và cân bằng Histogram.
- Histogram còn gọi là lược đồ xám.
- Cho biết chất lượng ảnh, nếu ảnh tối biểu đồ dời về bên trái, ánh sáng biểu đồ
dời về bên phải.

- Có L mức xám khác, là 1 hàm rời rạc, có biểu thức:
h(rk )  nk

(5.1)
rk : Gọi là mức xám thứ k trong đoạn 0, L  1 và n k là số pixels có giá trị mức xám
là rk :
h=imhist(f,b)
4


BÁO CÁO MÔN XỬ LÝ ẢNH

-

Để cải thiện chất lượng ảnh ta cân bằng histogram, sao cho số điểm ảnh ở mỗi
mức sáng tương đương nhau.
k

S k  T (rk )  ( L  1) pr (rj )
j 0

(5.2)

( L  1) k
S k  T (rk ) 
 n j ;0  k  L  1
M .N j  0

(5.3)


Ví dụ:
0

k  0; s0  T (r0 )  7 pr (rj )  7. pr (0)  1.33  1
j 0

1

k  1; s1  T (r1 )  7 pr (r j )  7.( pr (0)  pr (1))  3.08  3
j 0

2

k  2; s2  T (r2 )  7 pr (r j )  7.( pr (0)  pr (1)  pr (2))  4.55  5
j 0

s3  5.67  6; s4  6.23  6; s5  6.65  7; s6  6.86  7; s7  7.00  7

ORIGINAL HISTOGRAM

TRANSFER FUNCTION

EQUALIZED HISTOGRAM
5


BÁO CÁO MÔN XỬ LÝ ẢNH

6. Bộ lọc trong miền tần số.
a. Bộ lọc trong miền không gian: (Linear spatical filtering)

1

1

g (0,0)   w( s, t ) f ( x  s, y  t )
s  1t  1

(6.1)

b. Bộ lọc trung bình: (Làm ảnh mờ đi)
I

1
K

a

b

  w(s, t ) f ( x  s, y  t )

s   at   b

(6.2)

m 1 n 1

Với K   w( s, t ) với m, n là kích thước của bộ lọc w( s, t ) .
s 0 t 0


g=imfilter(f,h,’conv’);

c. Lọc trung vị: (Giúp lọc nhiễu muối tiêu, không làm mờ ảnh)
d=medfilt2(c);
7. GUIDE.
8. Phân đoạn và tách biên.
a. Phân đoạn:
- Phương pháp Otsu dùng để chọn ngưỡng: Tìm ngưỡng k sao cho cực đại hóa
phương sai giữa hai lớp và được đinh nghĩa như sau
nq
Pr (rq ) 
q  0,1,2,...L  1
(8.1)
n
 B2  0 (  0  T ) 2  1 ( 1  T ) 2
(8.2)
Trong đó:
k 1

0   pq (rq )
q 0

(8.3)

L 1

1   pq (rq )
q k

(8.4)


6


BÁO CÁO MÔN XỬ LÝ ẢNH
k 1

 0   qpq (rq ) / 0
q 0

L 1

1   qpq (rq ) / 1
q k

(8.5)

L 1

T   qpq (rq )
q 0

-

(8.6)

Cú pháp:
T=graythresh(f)

b. Tách biên:

- Quy trình phát hiện biên:
B1: Lọc nhiễu.
B2: Nổi biên sử dụng toán tử.
B3: Định vị biên (loại bỏ biên giả).
B4: Liên kết và trích chọn biên.
- Phương pháp Gradient (đạo hàm bậc 1):
G x  F  H x  Fx

(8.7)

G y  F  H y  Fy

(8.8)

G  G x2  G y2

  arctg

T

(8.9)

Gy
Gx

max(G)  min(G)
2

(8.10)


(8.11)

9. Mạng Neural.
a. Nhận dạng đối tượng: Nhận dạng đối tượng là được ứng dụng rộng rãi trong đời
sống hằng ngày như các hệ thống giám sát, quản lý, tìm kiếm thơng tin, điều khiển
tự động.

7


BÁO CÁO MƠN XỬ LÝ ẢNH

-

Tính ảnh trung bình

1 m
M   xi , i  1, m
m i 0

(9.1)

 a11  a12  a13  ...  a1m   m1 

  
a

a

a


...

a
 21
 m2 
22
23
2m 
1
M
a31  a32  a33  ...  a3m    m3 
  
m
 ...
  ... 

  
a

a

a

...

a
n
1
n

2
n
3
nm

  mn 

(9.2)

Hay

-

Tính sai lệch của các ảnh đầu vào so với trung bình
 Nhằm tạo ra sự giãn tương đối giá trị pixel của các ảnh

 a1m  m1 
 a11  m1 
 a12  m1 






 a 2 m  m2 
 a 21  m2 
 a 22  m2 
n1   a31  m3 , n2   a32  m3 ,..., nnm   a3m  m3 







 ...

 ...

 ...







 a n1  mn 
 a n 2  mn 
 a nm  mn  (9.3)
 Xây dựng ma trận từ các vector tìm được

A  n1 , n2 ,..., nm 

(9.4)

8


BÁO CÁO MƠN XỬ LÝ ẢNH


 Tính ma trận hiệp phương sai

C  A. AT

(9.5)

 Vì ma trận C có kích thước q lớn (NxN) nên để tìm eigenvector của C ta
tìm eigenvector và eigenvalue của ma trận L:

L  AT . A

(9.6)

 Trong Matlab dung lệnh eig(L) để tìm eigenvalue của L.
 Trị riêng (eigenvalue λi), và vectơ riêng (eigenvectơ xi) của ma trận hợp
phương sai này chính là đặc trưng thành phân thiết yếu của ảnh.
b. Nhận dạng đối tượng bằng mạng nơron
-

Mạng nơron bao gồm các phần tử đơn giản (còn gọi là nơron) hoạt động song
song được nối với nhau bằng các liên kết có trọng số để kích thích hoặc ức chế
giữa các nơron.

-

Có nhiều cấu trúc mạng nơron khác nhau như mạng hồi qui (feedback), mạng
tự tổ chức (self-organizing), mạng truyền thẳng (feedforward), mạng truyền
thẳng đa lớp với thuật toán lan truyền ngược (back propagation).


-

Huấn luyện mạng
 Q trình huấn luyện mạng chính là quá trình huấn luyện các mẫu học S =
{S1, S2, …,Sm} để giá trị ra cuối cùng T = {T1, T2, …,Tn} như ta mong
muốn.
 Để chọn số nút ẩn cho mạng ta làm các bước sau:
+ Bước1 : Chọn số nút ẩn đủ để mạng hội tụ.
+ Bước 2: Tính sai số trên tập kiểm tra. Nếu sai số trên tập kiểm tra tăng
theo số lần luyện thì mạng chưa đủ nút ẩn để quá khớp. Tăng nút ẩn cho
đến khi sai số giảm đến giá trị mong muốn.

9


BÁO CÁO MƠN XỬ LÝ ẢNH

-

Khởi tạo mạng cần có:
 net: loại mạng nơ-ron
 P: vector ngõ vào
 T: vector ngõ ra

-

Matlab:

[1].


net = newff(minmax(P),[S1 S2],{'tansig‘

'logsig'},'traingdx');
%Hàm kích hoạt cho ngõ ra của lớp vào là tansig và lớp ra là logsig. Thuật tốn
học theo phương pháp thích nghi, số nút lớp ẩn là S1, số ngõ ra là S2.
[2].

Các thông số chính mạng nơron:
net.performFcn = 'sse';

% Sum-Squared Error performance function
[3].

net.trainParam.goal = 0.001;

%Sum-squared error goal.
[4].

net.trainParam.epochs = 2000;

% Số lần học
-

Khi huấn luyện mạng đạt được sai số mong muốn thì dừng lại để kiểm tra

II. KẾT QUẢ THỰC HIỆN:
1. Tổng quan về xử lý ảnh.
Đề: Phát hiện và phân loại màu. (BT1)
[1].


Imread

% Đọc hình ảnh từ tập tin đồ họa
[2].

Imshow

% Hiển thị hình ảnh
10


BÁO CÁO MÔN XỬ LÝ ẢNH

[3].

rgb2gray

% Chuyển ảnh màu sang ảnh xám
[4].

R = a(:,:,1);

% ảnh xám thành phần R
[5].

G = a(:,:,2);

% ảnh xám thành phần G
[6].


B = a(:,:,3);

% ảnh xám thành phần B

Hình 1: Hiển thị màu đỏ và vàng dưới thơng qua lựa chọn điểm ảnh

2. Xử lý hình thái học (MORPHOLOGICAL IMAGE PROCESSING).
1.1. Đếm số đồng xu trong ảnh và tìm đồng xu có diện tích lớn nhất.(BT2)
Trong bài tập này, có:
[1].

im2bw

%Chuyển đổi ảnh sang ảnh nhị phân
11


BÁO CÁO MÔN XỬ LÝ ẢNH

[2].

se= strel('disk',3);

%strel là yếu tố cấu trúc hình thái, Tạo một phần tử cấu trúc hình đĩa có bán kính 3.

[3].

BW2 = imfill(b,'holes')

% lấp đầy lỗ hổng trong hình ảnh nhị phân đầu vào b.

[4].

cc = bwconncomp(BW2,4);

%Tìm các thành phần kết nối trong ảnh nhị phân. Trả về các thành phần được kết
nối trong đó 4 chỉ định kết nối mong muốn cho các thành phần được kết nối.
[5].

labeled = labelmatrix(cc)

%Tạo ma trận từ bwconncomp
[6].

cc.NumObjects

%Trả về số lượng đối tượng

12


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 1: Kết quả sau khi đổi ảnh xám thành ảnh nhị phân và lấp đầy những vùng cịn thiếu.

[7].

c1 = bwareafilt(coin2,1)

%Trích xuất các đối tượng từ hình ảnh nhị phân theo kích thước


13


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 4: Kết quả sau khi tìm đồng xu có diện tích lớn nhất

1.2. Nhận dạng và cắt một đoạn văn bản trong ảnh. (BT3)
[1].

ocrResults

= ocr(I)

%Nhận dạng văn bản bằng nhận dạng ký tự

Hình 5: Nhận diện và cắt đoạn văn bản
14


BÁO CÁO MÔN XỬ LÝ ẢNH

3. Bộ lọc và cân bằng Histogram.
Đề: Lọc nhiễu trung bình và trung vị.(BT5)
[1].

b=imnoise(a,'salt & pepper',0.02);

% Thêm nhiễu muối tiêu vào ảnh
[2].


c=medfilt2(b);

% Hàm lọc nhiễu trung vị
[3].

d=imfilter(b,h,'conv');

% Hàm lọc nhiễu trung bình. Conv là thực hiện lọc đa chiều bằng cách sử dụng
tích chập.

15


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 6: Kết quả sau khi sử dụng bộ lọc nhiễu trung bình và trung vị sau khi cho nhiễu muối tiêu vào ảnh
xám

4. Biến đổi Fourier.
Đề: Các nhóm nộp 1 file nén gồm file matlab mơ phỏng chương trình tìm các ký tự a
(số thành viên lẻ) và e (số thành viên chẵn) trong ảnh. (Số thành viên chẵn)

16


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 7: Sau khi dùng fourier thì chữ vị trí chữ „e‟ trong ảnh được xác định vị trí


5. GUIDE.
Đề: Tạo GUIDE

Hình 8: GUI sau khi được tạo
17


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 9: Sau khi load ảnh vào thì nhiễu sẽ được đưa vào ảnh

Hình 10: Ảnh sau khi được lọc bằng bộ lọc trung bình

18


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 11: Ảnh được lưu về từ phần „SAVE IMG‟

6. Phân đoạn và tách biên.
6.1. Sử dụng Sobel Gradient: (BT8)
Đề: Sử dụng Sobel Gradient để tách biên
[1].

rgb2gray

%Chuyển ảnh màu sang ảnh xám.
[2].


Gx=((2*I(i+2,j+1)+I(i+2,j)+I(i+2,j+2))-

(2*I(i,j+1)+I(i,j)+I(i,j+2)));
Gy=((2*I(i+1,j+2)+I(i,j+2)+I(i+2,j+2))(2*I(i+1,j)+I(i,j)+I(i+2,j)));
B(i,j)=sqrt(Gx.^2+Gy.^2);
%Sử dụng mặt nạ Sobel cho hướng x và y.

19


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 12: Ảnh sau khi được phát hiện biên.

6.2. Sử dụng Gabor: (BT9)
Trong bài Matlab này, ta sử dụng “Phân đoạn kết cấu bằng bộ lọc Gabor”
[1].

A = imresize(A,0.25);

% Hàm imresize để thay đổi kích thước ảnh. Bài này thu nhỏ hình ảnh để làm cho
chương trình chạy nhanh hơn.

[2].

wavelengthMin = 4/sqrt(2);

%Bước sóng mẫu trong công suất tăng của hai bắt đầu từ 4 / sqrt (2) cho đến chiều
dài cạnh huyền của hình ảnh đầu vào.
20



BÁO CÁO MÔN XỬ LÝ ẢNH

[3].

for i = 1:length(g)
sigma = 0.5*g(i).Wavelength;
K = 3;
gabormag(:,:,i) =
imgaussfilt(gabormag(:,:,i),K*sigma);
end

%Hậu xử lý các hình ảnh cường độ Gabor thành các tính năng Gabor. Q trình
xử lý bài đăng này bao gồm làm mịn Gaussian, thêm thông tin khơng gian bổ sung
vào bộ tính năng, định hình lại tính năng của chúng tơi thành dạng được mong đợi
bởi các hàm pca và kmeans, và bình thường hóa thơng tin tính năng thành phương
sai và ý nghĩa chung. K để kiểm soát mức độ làm mịn được áp dụng cho các phản
ứng cường độ Gabor.
[4].

X = 1:numCols;
Y = 1:numRows;

%Bản đồ thơng tin vị trí khơng gian trong cả X và Y. Thơng tin bổ sung này cho
phép trình phân loại thích các nhóm gần nhau hơn về mặt khơng gian.
[5].

X = reshape(featureSet,numRows*numCols,[]);


% Định hình lại dữ liệu thành ma trận X có dạng được mong đợi bởi hàm kmeans.
[6].

L = kmeans(X,2,'Replicates',5);

% Lặp lại k-nghĩa là phân cụm năm lần để tránh cực tiểu cục bộ. Có hai khu vực
riêng biệt trong trường hợp này.
[7].

label2rgb

% Để thấy được 2 vùng được phân nhãn

21


BÁO CÁO MÔN XỬ LÝ ẢNH

[8].

BW = L == 2;
BW = repmat(BW,[1 1 3]);
Aseg1(BW) = A(BW);
Aseg2(~BW) = A(~BW);

% Kiểm tra các hình ảnh nền trước và nền kết quả từ mặt nạ BW được liên kết với
ma trận nhãn L.

Hình 13: Ảnh trước và sau khi được xử lý phân đoạn ảnh sử dụng phương pháp GABOR.


6.3. Phân biệt hoa: (BT10)

22


BÁO CÁO MƠN XỬ LÝ ẢNH

Hình 14: Sau khi cho ngõ vào mong muốn.

Hình 14: Kết quả sau khi chạy chương trình học xác định ngõ ra.

Hình 13: Ngõ ra được dự đoán là 1.
23



×