Tải bản đầy đủ (.docx) (30 trang)

BÀI TẬP LỚN XỬ LÝ ẢNH SỐ: : Tìm hiểu thuật toán tam giác (triangle) xác định ngưỡng để phân đoạn ảnh. Thử nghiệm với ảnh đa mức xám

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.01 MB, 30 trang )

Báo cáo xử lý ảnh số

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
KHOA: CÔNG NGHỆ THÔNG TIN

BÁO CÁO
BÀI TẬP LỚN: XỬ LÝ ẢNH SỐ
Đề tài: Tìm hiểu thuật toán tam giác (triangle) xác
định ngưỡng để phân đoạn ảnh. Thử nghiệm với ảnh
đa mức xám.
Giảng viên hướng dẫn:
Th.S: Trần Mai Hương

Sinh viên thực hiện:
Trần Thị Hà:

1421050378

Nguyễn Thị Khánh Linh:

1421050480

Vũ Thị Hải Yến:

1421050719

1

Nhóm 4: Hà, Linh, Yến



Báo cáo xử lý ảnh số

MỤC LỤC

DANH MỤC HÌNH VẼ

MỞ ĐẦU
Xử lý ảnh (XLA) là một trong những chuyên ngành quan trọng và lâu đời
của Công nghệ thông tin. XLA được áp dụng trong nhiều lĩnh khác nhau như y
học, vật lý, hoá học, tìm kiếm tội phạm,… Mục đích chung của việc XLA thường
là: (1) xử lý ảnh ban đầu để có được một bức ảnh mới theo một yêu cầu cụ thể;
phân tích ảnh để thu được các thông tin đặc trưng trên ảnh nhằm hỗ trợ cho việc
phân loại và nhận biết ảnh; phân đoạn ảnh (image segmentation) để nhận diện
được các thành phần trong ảnh nhằm hiểu được kết cấu của bức ảnh ở mức độ cao
hơn. Để xử lý được một bức ảnh thì phải trải qua nhiều bước, nhưng bước quan
trọng và khó khăn nhất đó là phân đoạn ảnh. Nếu bước phân đoạn ảnh không tốt thì
dẫn đến việc nhận diện sai lầm về các đối tượng có trong ảnh.
Trong khoảng 30 năm trở lại đây đã có rất nhiều các thuật toán được đề xuất
để giải quyết bài toán phân đoạn ảnh. Các thuật toán hầu hết đều dựa vào hai
thuộc tính quan trọng của mỗi điểm ảnh so với các điểm lân cận của nó, đó là: sự
khác (dissimilarity) và giống nhau (similarity). Các phương pháp dựa trên sự khác
nhau của các điểm ảnh được gọi là các phương pháp biên (boundary-based
methods), còn các phương pháp dựa trên sự giống nhau của các điểm ảnh được gọi
2

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
là phương pháp miền (region-based methods). Tuy nhiên, cho đến nay các thuật

toán theo cả hai hướng này đều vẫn chưa cho kết quả phân đoạn tốt, vì cả hai loại
phương pháp này đều chỉ nắm bắt được các thuộc tính cục bộ (local) của ảnh. Do
đó, trong thời gian gần đây, việc tìm ra các thuật toán nắm bắt được các thuộc tính
toàn cục (global) của bức ảnh đã trở thành một xu hướng.

PHẦN I: PHÂN ĐOẠN ẢNH
1. Giới thiệu
Phân đoạn ảnh là một thao tác ở mức thấp trong toàn bộ quá trình xử lý ảnh.
Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất
với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó. Các vùng
ảnh đồng nhất này thông thường sẽ tương ứng với toàn bộ hay từng phần của các
đối tượng thật sự bên trong ảnh. Vì thế, trong hầu hết các ứng dụng của lĩnh vực xử
lý ảnh (image processing), thị giác máy tính, phân đoạn ảnh luôn đóng một vai trò
cơ bản và thường là bước tiền xử lý đầu tiên trong toàn bộ quá trình trước khi thực
hiện các thao tác khác ở mức cao hơn như nhận dạng đối tượng, biểu diễn đối
tượng, nén ảnh dựa trên đối tượng, hay truy vấn ảnh dựa vào nội dung … Vào
những thời gian đầu, các phương pháp phân vùng ảnh được đưa ra chủ yếu làm
việc trên các ảnh mức xám do các hạn chế về phương tiện thu thập và lưu trữ.
Ngày nay, cùng với sự phát triển về các phương tiện thu nhận và biểu diễn ảnh, các
ảnh màu đã hầu như thay thế hoàn toàn các ảnh mức xám trong việc biểu diễn và
lưu trữ thông tin do các ưu thế vượt trội hơn hẳn so với ảnh mức xám. Do đó, các
kỹ thuật, thuật giải mới thực hiện việc phân vùng ảnh trên các loại ảnh màu liên tục
được phát triển để đáp ứng các nhu cầu mới. Các thuật giải, kỹ thuật này thường
được phát triển dựa trên nền tảng các thuật giải phân vùng ảnh mức xám đã có sẵn.

3

Nhóm 4: Hà, Linh, Yến



Báo cáo xử lý ảnh số
2. Các hướng tiếp cận phân đoạn ảnh
Phân đoạn ảnh là chia ảnh thành các vùng không trùng lặp. Mỗi vùng gồm
một nhóm pixel liên thông và đồng nhất theo một tiêu chí nào đó. Tiêu chí này phụ
thuộc vào mục tiêu của quá trình phân đoạn. Ví dụ như đồng nhất về màu sắc, mức
xám, kết cấu, độ sâu của các layer… Sau khi phân đoạn mỗi pixel chỉ thuộc về một
vùng duy nhất. Để đánh giá chất lượng của quá trình phân đoạn là rất khó. Vì vậy
trước khi phân đoạn ảnh cần xác định rõ mục tiêu của quá trình phân đoạn là gì.
Xét một cách tổng quát, ta có thể chia các hướng tiếp cận phân đoạn ảnh thành ba
nhóm chính như sau:


Các kỹ thuật phân đoạn ảnh dựa trên không gian đặc trưng.



Các kỹ thuật dựa trên không gian ảnh.



Các kỹ thuật dựa trên các mô hình vật lý.

2.1.Các phương pháp dựa trên không gian đặc trưng
Nếu chúng ta giả định màu sắc bề mặt của các đối tượng trong ảnh là một
thuộc tính bất biến và các màu sắc đó được ánh xạ vào một không gian màu nào
đó, vậy thì chúng ta sẽ có một cái nhìn đối với mỗi đối tượng trong ảnh như là
một cụm (cluster) các điểm trong không gian màu đó. Mức độ phân tán của các
điểm trong trong một cụm được xác định chủ yếu bởi sự khác biệt về màu sắc.
Một cách khác, thay vì ánh xạ các pixel trong ảnh vào một không gian màu cụ
thể, ta xây dựng một biểu đồ (histogram) dựa trên các đặc trưng màu dạng adhọc cho ảnh đó (ví dụ như Hue), và thông thường, các đối tượng trong ảnh sẽ

xuất hiện như các giá trị đỉnh trong biểu đồ (histogram) đó. Do đó, việc phân
vùng các đối tượng trong ảnh tương ứng với việc xác định các cụm – đối với
4

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
cách biểu diễn thứ nhất – hoặc xác định các vùng cực trị của biểu đồ
(histogram) đối với cách biểu diễn thứ hai.
Các phương pháp tiếp cận này chỉ làm việc trên một không gian màu xác
định chẳng hạn phương pháp của Park, áp dụng trên không gian màu RGB, còn
phương pháp của Weeks và Hague thì áp dụng trên không gian màu HIS. Dựa
trên không gian đặc trưng, ta có các phương pháp phân đoạn: phương pháp
phân nhóm đối tượng không giám sát, phương pháp phân lớp trung bình thích
nghi, phương pháp lấy ngưỡng biểu đồ (histogram).
2.2.Các phương pháp dựa trên không gian ảnh
Hầu hết những phương pháp được đề cập trong phần trên đều hoạt động dựa
trên các không gian đặc trưng của ảnh (thông thường là màu sắc). Do đó, các vùng
ảnh kết quả là đồng nhất tương ứng với các đặc trưng đã chọn cho từng không
gian. Tuy nhiên, không có gì đảm bảo rằng tất cả các vùng này thể hiển một sự cô
đọng (compactness) về nội dung xét theo ý nghĩa không gian ảnh (ý nghĩa các
vùng theo sự cảm nhận của hệ thần kinh con người). Mà đặc tính này là quan trọng
thứ hai sau đặc tính về sự thuần nhất của các vùng ảnh. Do các phương pháp gom
cụm cũng như xác định ngưỡng biểu đồ (histogram) đã nêu đều bỏ qua thông tin về
vị trí của các pixel trong ảnh.
Trong các báo cáo khoa học về phân vùng ảnh mức xám, có khá nhiều kỹ
thuật cố thực hiện việc thoả mãn cùng lúc cả hai tiêu chí về tính đồng nhất trong
không gian đặc trưng của ảnh và tính cô đọng về nội dung ảnh. Tuỳ theo các kỹ
thuật mà các thuật giải này áp dụng, chúng được phân thành các nhóm sau:



Các thuật giải áp dụng kỹ thuật chia và trộn vùng.

5

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số


Các thuật giải áp dụng kỹ thuật tăng trưởng vùng.



Các thuật giải áp dụng lý thuyết đồ thị.



Các giải thuật áp dụng mạng neural.



Các giải thuật dựa trên cạnh.
2.3.Các phương pháp dựa trên mô hình vật lý
Tất cả các giải thuật được xem xét qua, không ít thì nhiều ở mặt nào đó đều
có khả năng phát sinh việc phân vùng lỗi trong các trường hợp cụ thể nếu như các
đối tượng trong ảnh màu bị ảnh hưởng quá nhiều bởi các vùng sáng hoặc bóng mờ,
các hiện tượng này làm cho các màu đồng nhất trong ảnh thay đổi nhiều hoặc ít

một cách đột ngột. Và kết quả là các thuật giải này tạo ra các kết quả phân vùng
quá mức mong muốn so với sự cảm nhận các đối tượng trong ảnh bằng mắt
thường. Để giải quyết vấn đề này, các giải thuật phân vùng ảnh áp dụng các mô
hình tương tác vật lý giữa bề mặt các đối tượng với ánh sáng đã được đề xuất. Các
công cụ toán học mà các phương pháp này sử dụng thì không khác mấy so với các
phương pháp đã trình bày ở trên, điểm khác biệt chính là việc áp dụng các mô hình
vật lý để minh hoạ các thuộc tính phản chiếu ánh sáng trên bề mặt màu sắc của các
đối tượng.
Cột mốc quan trọng trong lĩnh vực phân vùng ảnh màu dựa trên mô hình vật
lý được Shafer đặt ra. Ông giới thiệu mô hình phản xạ lưỡng sắc cho các vật chất
điện môi không đồng nhất. Dựa trên mô hình này, Klinker đã đặt ra một giải thuật
đặt ra một số giả thiết quang học liên quan đến màu sắc, bóng sáng, bóng mờ của
các đối tượng và cố gắng làm phù hợp chúng với hình dạng của các cụm. Hạn chế
chính của giải thuật này là nó chỉ làm việc trên các vật chất điện môi không đồng
6

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
nhất. Hai ông cùng tên đã áp dụng mô hình phản xạ lưỡng sắc trong không gian
HSV để xác định các đường biên trong ảnh màu.
Healey đề xuất một mô hình phản xạ đơn sắc cho các vật chất kim loại. Các
phương pháp đề cập trong phần này chỉ áp dụng cho hai loại vật chất là kim loại và
điện môi không đồng nhất. Một thuật toán tổng quát và phức tạp hơn cũng được
Maxwell và Shafer đề xuất trong.
Tóm lại, một cái nhìn tổng quan về các phương pháp phân đoạn ảnh như
sau:
Color Image Segmentation techniques


Feature-based

Spatial-based

Clustering

Split and merge

Adaptive k-means clust.

Region growing

Histogram thresholding

Edge based

Physics-based

Neural network based
Graph theoretical

Mỗi phương pháp đều có những ưu nhược điểm nhất định:
Phương pháp phân

Ưu điểm

vùng

Khuyết điểm


Featured-based techniques (tính năng kĩ thuật)
Clustering (cụm)



Phân loại không



Không quan tâm
7

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
cần giám sát.


đến các thông tin
trong không gian ảnh.

Tồn tại các
phương pháp kinh



Có vấn đề trong

nghiệm cải tiến


việc xác định số lượng

(heuristic) và hữu hạn.

các cụm ban đầu.


Khó khăn trong
việc điều chỉnh các
cụm sao cho phù hợp
với các vùng trong
ảnh.

Adaptive Clustering



Sở hữu tính liên

Cực đại hoá một

tục trong không gian

xác suất hậu điều kiện

ảnh và tính thích nghi

có thể bị sai do các


cục bộ đối với các

cực trị địa phương.

vùng ảnh.






Hội tụ chậm.

Sử dụng các ràng
buộc về không gian
ảnh.

Phương pháp phân

Ưu điểm

vùng
Histogram



thresholding

Không cần biết


Khuyết điểm


trước bất kỳ thông tin
nào từ ảnh.


Các giải thuật
nhanh và dễ dàng cài

Bỏ qua các thông
tin về không gian ảnh.



Lấy ngưỡng trong
các histogram đa
chiều là một quá trình
8

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
đặt.

phức tạp.


Ảnh hưởng dễ

dàng bởi nhiễu xuất
hiện trong ảnh.

Spatial-based techniques
Spit and Merge





Sử dụng các thông



Định nghĩa mức

tin về không gian ảnh

độ đồng nhất về màu

là chính.

sắc có thể phức tạp và
khó khăn.

Cho kết quả tốt
với các ảnh chứa




Quadtree có thể

nhiều vùng màu đồng

gây ra các kết quả

nhất.

không như mong
muốn.

Region growing





Các vùng ảnh



Tốn kém chi phí

đồng nhất và liên

sử dụng bộ nhớ và

thông.

tính toán.


Có một số thuật



Gặp khó khăn

giải có tốc độ thực thi

trong việc thu thập tập

khá nhanh.

các điểm mầm và xác
định các điều kiện
đồng nhất đầy đủ.


Chịu ảnh hưởng
bởi các đặc tính tự
nhiên của kỹ thuật
này.
9

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
Graph theories




Thể hiện tốt không



gian ảnh bằng đồ thị.


mất khá nhiều thời
gian thực hiện.

Một số thuật toán
có tốc độ thực hiện

Một vài thuật giải



nhanh.

Các đặc trưng cục
bộ đôi khi được sử
dụng nhiều hơn các
đặc trưng toàn cục.

Neural networks








Mức độ song song



Màu sắc có thể

hoá cao và có tốc độ

làm tăng độ phức tạp

thực thi nhanh.

của mạng.

Khả năng chống



Quá trình học cần

chịu tốt trước các thay

phải biết trước số

đổi xấu.


lượng các phân
lớp/cụm.

Một công cụ hữu
hiệu cho các ứng dụng
nhận dạng và xử lý
ảnh y khoa.

Edge-based





Là phương pháp



Khó khăn trong

được hỗ trợ mạnh bởi

việc định nghĩa một

các toán tử dò biên.

hàm gradient cho các
ảnh màu.

Có hiệu năng tốt

với các ứng dụng dò



Nhiễu hoặc các

biên đối tượng theo

ảnh có độ tương phản

đường cong.

kém ảnh hưởng xấu
đến kết quả phân
10

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
vùng.
Phương pháp phân

Ưu điểm

vùng

Khuyết điểm

Physics-based techniques





Khẳng định tính



Bị giới hạn vào

chắc chắn đối với các

một số lượng nhất

vùng bóng sáng/tối, và

định các loại vật chất

vùng bóng chuyển tiếp

hình thành nên đối

(diffuse hoặc shade)

tượng.

Phân vùng các đối




Khó khăn trong

tượng dựa vào thành

việc xác định vùng

phần vật liệu cấu tạo

bóng sáng và bóng
chuyển tiếp trong các
ảnh thực.


Một vài giải thuật
đòi hỏi các thông tin
về hình dạng đối
tượng (không luôn
luôn đáp ứng được).



Chi phí tính toán
khá cao.

Đối với bài toán truy vấn ảnh theo nội dung, bước tiền xử lý phân đoạn phải
chú ý đến các thông tin toàn cục và cả cục bộ. Đồng thời đảm bảo tính liên tục
trong không gian ảnh. Vì vậy, ở đây ta sẽ đi sâu vào các thuật toán phân đoạn:
phương pháp phân đoạn yếu của B.G. Prasad áp dụng trong hệ thống truy vấn ảnh
11


Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
của ông; phương pháp phân đoạn trung bình thích nghi; phương pháp phân đoạn
theo ngưỡng cục bộ thích nghi.

PHẦN II: MỘT SỐ PHƯƠNG PHÁP PHÂN ĐOẠN
THEO NGƯỠNG
1. Tổng quát
1.1 Giới

-

thiệu
Biên độ của các thuộc tính vật lý của ảnh (như độ phản xạ, độ truyền sáng,
màu sắc…) là một đặc tính đơn giản và rất hữu ích. Nếu biên dộ đủ lớn đặc
trưng cho phân đoạn ảnh. Thí dụ, biên độ trong bộ cảm biến hồng ngoại có
thể phản ánh vùng có nhiệt độ thấp hay nhiệt độ cao. Đặc biệt, kỹ thuật phân
ngưỡng theo biên độ rất có ích với ảnh nhị phân như văn bản in, đồ họa, ảnh

-

màu hay ảnh X-quang.
Việc chọn ngưỡng trong ky thuật này là bước vô cùng quan trọng, thông
thường người ta tiến hành theo các bước chung như sau:
 Xem xét lược đồ xám của ảnh để xác định đỉnh và khe, nếu ảnh có
nhiều đỉnh và khe thì các khe có thể sử dụng để chọn ngưỡng.
12


Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số


Chọn ngưỡng T sao cho một phần xác định trước η của toàn bộ số

-

mẫu thấp hơn T.
Điều chỉnh ngưỡng dựa trên xét lược đồ của điểm lân cận.
Chọn ngưỡng bằng cách xem xét lược đồ xám của những điểm tiêu chuẩn đã

-

chọn.
Một thuật toán đơn giản trong kỹ thuật này là: giả sử rằng mình chúng ta
đang quan tâm tới các đối tượng sáng (object) trên nền tối (background),
một tham số T gọi là ngưỡng độ sáng sẽ được chọn 1 ảnh f[x,y] theo cách:
(Lương Mạnh Bá, 2015)If f[x,y] T
f[x,y]
=
Object = 1
Else

f[x,y] = Background = 0.

Ngược lại, với các đối tượng tối trên nền sáng chúng ta có thuật toán sau:
If[x,y] T

Else

f[x,y] = Object = 1
f[x,y] = Background = 0.

Vấn đề chính là chúng ta nên chọn ngưỡng thế nào để việc phân vùng đạt kết
quả cao nhất? Có rất nhiều thuật toán chọn ngưỡng : ngưỡng cố định, dựa
trên lược đồ, sử dụng Entropy, sử dụng tập mờ, chọn ngưỡng thông qua sự
không ổn định của lớp và tính thuần nhất của vùng.
1.2 Ngưỡng

-

-

là gì?
Ngưỡng (Threshold) là một khái niệm khá quen thuộc trong xử lý ảnh cũng
như rất nhiều giải thuật khác. Nó dùng để chỉ một giá trị mà người ta dựa
vào để phân hoạch một tập hợp thành các miền phân biệt.
Ví dụ thang điểm đánh giá học sinh là từ 1 đến 10. Trong một tập hợp gồm
40 học sinh của 1 lớp, người ta muốn phân lọai ra hai miền, miền thứ nhất
bao gồm các học sinh đạt yêu cầu và miền thứ hai gồm các học sinh không
đạt. Trong tình huống đó người ta dùng giá trị 5 (điểm) như là một ngưỡng
(threshold) để phân loại học sinh. Các học sinh có điểm dưới 5 sẽ xem như
không đạt, những học sinh có điểm từ 5 trở lên là đạt yêu cầu. Giá trị
ngưỡng thường được xác định dựa vào những điểm đặc biệt (ví dụ ở trung
bình), dựa vào kinh nghiệm khảo sát. Nếu dựa vào số lượng Ngưỡng áp
dụng cho cùng một tập dữ liệu người ta sẽ phân ra các phương pháp ứng
13


Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số

-

dụng ngưỡng đơn, ngưỡng kép, hay đa ngưỡng. Nếu dựa vào sự biến thiên
của giá trị Ngưỡng, trong cùng phạm vi ứng dụng người ta sẽ phân ra các
phương pháp dùng ngưỡng cố định (Constant|Fixed Threshold) và không cố
định (Adaptive Threshold). Ngưỡng không cố định nghĩa là giá trị của nó sẽ
thay đổi tùy theo sự biến thiên của tập dử liệu theo không gian và thời
gian. Thông thường giá trị này được xác định thông qua khảo sát tập dử liệu
bằng phương pháp thống kê. Để dễ hình dung hơn về ứng dụng khái niệm
Threshold,
Sau đây chúng ta sẻ xét một ví dụ bộ lọc ngưỡng (Threshold Filter) đơn
giản trong xử lý ảnh.

Với mỗi pixel trong hình đa mức xám (grayscale) ở trên giá trị sẽ trong
khoảng 0 - 255 vậy pixel nào lớn hơn ngưỡng là 120 ta gán giá trị cho nó
thành đen (0), ngược lại gán giá trị trắng (255). Kết quả thu được như sau:

1.3 Chọn

-

ngưỡng cố định
Đây là một phương pháp chọn ngưỡng độc lập với dữ liệu ảnh. Nếu chung ta
biết trước là chương trình ứng dụng sẽ làm việc với các ảnh có độ tương
phản khá cao, trong đó các đối tượng quan tâm rất tối còn nền gần như là

đồng nhất và rất sang thì việc chon ngưỡng T=128 (xét trên thang độ sang từ
0 tới 255) là một giá trị chọn khá chính xác. Chính xác ở đây hiểu theo nghĩa
là số các điểm ảnh bị phân lớp sai là cực tiểu.

14

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
1.4 Chọn

-

ngưỡng dựa trên lược đồ
Trong hầu hết các trường hợp, ngưỡng được chọn từ lược đồ sáng của vùng
hay ảnh cần phân đoạn. Có rất nhiều kỹ thuật chọn ngưỡng tự động xuất
phát từ lược đồ xám {h[b] !b=0,1,2 …2B -1} đã được đưa ra. Những kỹ thuật
phổ biến sẽ được trình bày dưới đây. Nhưng kỹ thuật này có thể tận dụng
những lợi thế do sự làm trơn dữ liệu lược đồ ban đầu mang lại nhằm loại bỏ
những giao động nhỏ về độ sáng . Tuy nhiên các thuật toán làm trơn cần
phải cẩn thận, không được làm dịch chuyển các vị trí đỉnh của lược đồ. Nhận
xét này dẫn tới thuật toán làm trơn dưới đây:
Hsmooth[b] =

raw

[b-w]

Trong đó, W thường được n chọn là 3 hoặc 5


-

2. Thuật toán tam giác
Khi một ảnh có các điểm ảnh thuộc đối tượng tạo nên một đỉnh yếu trong
lược đồ ảnh thì thuật toán tam giác hoạt động rất hiệu quả. Thuật toán này do
Zack đề xuất và được mô tả như sau:
 B1 : xây dựng đường thẳng
là đường nối 2 điểm là (Hmax,bmax) và
(Hmin,bmin) trong đó Hmax là điểm Histogram ứng với độ sáng nhỏ nhất


bmin.
B2 : Tính khoảng cách d từ H b của lược đồ (ứng với điểm sáng b) đến

Trong đó , b [bmax,bmin].
 B3 :Chọn ngưỡng T=Max{Hb}
Minh họa thuật toán tam giác bởi hình vẽ như sau:

15

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số

Hình: 1 Minh học thuật toán tam giác

PHẦN III: CÀI ĐẶT VÀ THỬ NGHIỆM
1. Yêu cầu về hệ thống

-

Sử dụng Visual Studio2015

2. Chương trình

Sau đây là chương trình sử dụng để phân đoạn theo ngưỡng theo thuật toán:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
16

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
using System.Collections;
namespace BTL_XLAS.Nhóm_04
{
public partial class Form1 : Form
{

public Bitmap newBitmap;
Image file;
public ImageList imageList, imageList5;
public Image i;
public string[] i1, i2, i3;
public string urlimages;
public OpenFileDialog opend1;
public SaveFileDialog save1;
public Bitmap bitmap01;
public Bitmap temp;
public int tracked_val, p1, c;
private void sobelToolStripMenuItem_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
{
if (toolStripTextBox1.Text == "")
{
toolStripTextBox1.Text = "120";
}
Bitmap im;
im = (Bitmap)pictureBox1.Image;
Bitmap b, b1;
int[,] gx = new int[,] { { -1, 0, 1 }, { -2, 0, 2 }, { -1, 0, 1} };
int[,] gy = new int[,] { { 1, 2, 1 }, { 0, 0, 0 }, { -1, -2, -1} };
b = (Bitmap)im;
b1 = new Bitmap(im);
for (int i = 1; i < b.Height - 1; i++)
{
for (int j = 1; j < b.Width - 1; j++)
{

float new_x = 0, new_y = 0;
float c;
for (int hw = -1; hw < 2; hw++)
17

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
{
for (int wi = -1; wi < 2; wi++)
{
c = (b.GetPixel(j + wi, i + hw).B + b.GetPixel(j + wi, i + hw).R
+ b.GetPixel(j + wi, i + hw).G) / 3;
new_x = new_x + gx[hw + 1, wi + 1] * c;
new_y = new_y + gx[hw + 1, wi + 1] * c;
}
}
if (new_x * new_x + new_y * new_y >
Int32.Parse(toolStripTextBox1.Text) * Int32.Parse(toolStripTextBox1.Text))
b1.SetPixel(j, i, Color.White);
else
b1.SetPixel(j, i, Color.Black);
}
}
pictureBox1.Image = (Image)b1;
}
}
private void prewittToolStripMenuItem_Click(object sender, EventArgs e)
{

if (pictureBox1.Image != null)
{
if (toolStripTextBox1.Text == "")
{
toolStripTextBox1.Text = "120";
}
Bitmap im;
im = (Bitmap)pictureBox1.Image;
Bitmap b, b1;
int[,] gx = new int[,] { { -1, 0, 1 }, { -1, 0, 1 }, { -1, 0, 1 } };
int[,] gy = new int[,] { { 1, 1, 1 }, { 0, 0, 0 }, { -1, -1, -1 } };
b = (Bitmap)im;
b1 = new Bitmap(im);
for (int i = 1; i < b.Height - 1; i++)
{
for (int j = 1; j < b.Width - 1; j++)
{
18

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
float new_x = 0, new_y = 0;
float c;
for (int hw = -1; hw < 2; hw++)
{
for (int wi = -1; wi < 2; wi++)
{
c = (b.GetPixel(j + wi, i + hw).B + b.GetPixel(j + wi, i + hw).R

+ b.GetPixel(j + wi, i + hw).G) / 3;
new_x = new_x + gx[hw + 1, wi + 1] * c;
new_y = new_y + gx[hw + 1, wi + 1] * c;
}
}
if (new_x * new_x + new_y * new_y >
Int32.Parse(toolStripTextBox1.Text) * Int32.Parse(toolStripTextBox1.Text))
b1.SetPixel(j, i, Color.White);
else
b1.SetPixel(j, i, Color.Black);
}
}
pictureBox1.Image = (Image)b1;
}
}
private void databaseToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void robertToolStripMenuItem_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
{
if (toolStripTextBox1.Text == "")
{
19

Nhóm 4: Hà, Linh, Yến



Báo cáo xử lý ảnh số
toolStripTextBox1.Text = "30";
}
Bitmap im;
im = (Bitmap)pictureBox1.Image;
Bitmap b, b1;
int[,] gx = new int[,] { { 0, 1 }, {-1, 0 } };
int[,] gy = new int[,] { { 1, 0 }, { 0, -1 } };
b = (Bitmap)im;
b1 = new Bitmap(im);
for (int i = 1; i < b.Height - 1; i++)
{
for (int j = 1; j < b.Width - 1; j++)
{
float new_x = 0, new_y = 0;
float c;
for (int hw = -1; hw < 1; hw++)
{
for (int wi = -1; wi < 1; wi++)
{
c = (b.GetPixel(j + wi, i + hw).B + b.GetPixel(j + wi, i + hw).R
+ b.GetPixel(j + wi, i + hw).G) / 3;
new_x = new_x + gx[hw + 1, wi + 1] * c;
new_y = new_y + gx[hw + 1, wi + 1] * c;
}
}
if (new_x * new_x + new_y * new_y >
Int32.Parse(toolStripTextBox1.Text) * Int32.Parse(toolStripTextBox1.Text))

b1.SetPixel(j, i, Color.White);
else
b1.SetPixel(j, i, Color.Black);
}
}
pictureBox1.Image = (Image)b1;
}
}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog opend1 = new OpenFileDialog();
20

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
opend1.Filter = "Image Files(*.BMP;*.JPG;*.PNG;*.GIF)|
*.BMP;*.JPG;*.PNG;*.GIF|All files(*.*)|*.*";
opend1.Multiselect = true;
if (opend1.ShowDialog() == DialogResult.OK)
{
file = Image.FromFile(opend1.FileName);
urlimages = opend1.FileName;
newBitmap = new Bitmap(file);
pictureBox1.Image = file;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{

SaveFileDialog save1 = new SaveFileDialog();
save1.Filter = "Image Files(*.BMP;*.JPG;*.PNG;*.GIF)|
*.BMP;*.JPG;*.PNG;*.GIF|All files(*.*)|*.*";
if (save1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image.Save(save1.FileName);
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}

21

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
3. Giao diện của chương trình
3.1 Giao

diện chính

Hình: 2 Giao diện chính


3.2 Ví
-

dụ

Open ảnh

22

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số

Hình: 3 Ảnh khi open
-

Xử lý với Sobel

23

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số
Hình: 4 Ảnh khi xử lý với Sobel

-


Xử lý với Robert

Hình: 5 Ảnh khí xử lý với Robert

-

Xử lý với Prewitt

24

Nhóm 4: Hà, Linh, Yến


Báo cáo xử lý ảnh số

Hình: 6 Ảnh khi xử lý với Prewit

KẾT LUẬN
Ngày nay, ngành công nghệ thông tin đang phát triển một cách mạnh mẽ, có
rất nhiều thiết giúp ích trong quá trình sử lý ảnh. Trong hầu hết các ứng dụng của
lĩnh vực xử lý ảnh (image processing), thị giác máy tính, phân đoạn ảnh luôn đóng
25

Nhóm 4: Hà, Linh, Yến


×