Độphân giải của ảnh chính là tích số của giá trị lớn nhất của x với giá trị lớn nhấtcủa y.VD: Màn hình máy tính có nhiều loại với độ phân giải khác nhau: mànhình CGA Color Graphic Adapto
Trang 1Hạn nộp bài theo qui định: ngày tháng năm
Thời gian nộp bài:ngày tháng năm
Nhận xét của giảng viên chấm bài:
Điểm: Giảng viên (ký tên):
Trang 2MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 2
PHẦN I: LÝ LUẬN VỀ XỬ LÝ ẢNH 3
1 Xử lý ảnh (số) và các khái niệm liên quan: 3
1.1 Xử lý ảnh (số) 3
1.2 Các khái nịêm liên quan: 3
PHẦN II: SỬ DỤNG PHẦN MỀM MATLAB XỬ LÝ ẢNH 10
1 Giới thiệu về MATLAB 10
1.1 Các đặc điểm cơ bản của MATLAB: 10
1.2 Phát triển giải thuật và ứng dụng 11
1.3 Phân tích và tiếp cận dữ liệu: 12
1.4 Tiếp cận dữ liệu 13
1.5 Hình ảnh hóa dữ liệu 13
1.6 Xuất kết quả và triển khai ứng dụng 14
2 Xử lý ảnh bằng MATLAB 15
2.1 Ảnh trong MATLAB 15
2.2 Hộp công cụ xử lý ảnh (image processing toolbox): 15
2.3 Hộp công cụ thu nhận ảnh (image acquisition toolbox): 18
2.4.Một số ví dụ về xử lý ảnh với Matlab: 19
DANH MỤC TÀI LIỆU THAM KHẢO 21
Trang 3MỞ ĐẦU
Khoảng hơn mười năm trở lại đây, phần cứng máy tính và các thiết bịliên quan đã có sự tiến bộ vượt bậc về tốc độ tính toán, dung lượng chứa, khảnăng xử lý v.v và giá cả đã giảm đến mức máy tính và các thiết bị liên quan đến
xử lý ảnh đã không còn là thiết bị chuyên dụng nữa Khái niệm ảnh số đã trở nênthông dụng với hầu hết mọi người trong xã hội và việc thu nhận ảnh số bằng cácthiết bị cá nhân hay chuyên dụng cùng với việc đưa vào máy tính xử lý đã trởnên đơn giản
Trong hoàn cảnh đó, xử lý ảnh là một lĩnh vực đang được quan tâm và đãtrở thành môn học chuyên ngành của sinh viên ngành công nghệ thông tin trongnhiều trường đại học trên cả nước Tuy nhiên, tài liệu giáo trình còn là một điềukhó khăn Hiện tại chỉ có một số ít tài liệu bằng tiếng Anh hoặc tiếng Pháp, tàiliệu bằng tiếng Việt thì rất hiếm Với mong muốn đóng góp vào sự nghiệp đàotạo và nghiên cứu trong lĩnh vực này, chúng tôi biên soạn cuốn giáo trình Xử lýảnh dựa trên đề cương môn học đã được duyệt Cuốn sách tập trung vào các vấn
đề cơ bản của xử lý ảnh nhằm cung cấp một nền tảng kiến thức đầy đủ và chọnlọc nhằm giúp người đọc có thể tự tìm hiểu và xây dựng các chương trình ứngdụng liên quan đến xử lý ảnh
Trong quá trình nghiên cứu môn học "Xử lý ảnh" dưới sự hướng dẫn của
TS Nguyễn Đăng Minh, tôi được giao thực hiện tiểu luận môn học với yêu cầu:
Lý luận về xử lý ảnh và Ứng dụng phần mềm Matlap để xửt lý ảnh.
Do thời gian nghiên cứu chưa nhiều, trình độ còn hạn chế nên tiểu luậnkhông tránh khỏi nhiều thiếu sót Tôi rất mong nhận được sự góp ý của các thầygiáo, cô giáo và bạn đọc
Trang 41.2 Các khái nịêm liên quan:
* Điểm ảnh (Picture Element)
Gốc của ảnh(ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử
lý bằng máy tính(số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gầnđúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí(khônggian) và độ sáng (mức xám) Khoảng cách giữa điểm ảnh đó được thiết lập saocho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm nhưvậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuônkhổ ảnh hai chiều, mỗi Pixel ứng với cặp tọa độ (x,y)
Như vậy, điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x,y) với độxám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó đượcchọn thích hợp sao cho mắt người cảm nhận sự liên tục về kkhong gian và mứcxám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận đượcgọi là một phần tử ảnh
* Độ phân giải của ảnh
Trang 5Theo định nghĩa ở trên thi mỗi Pixel gồm một cặp toạ độ (x,y) và màu Độphân giải của ảnh chính là tích số của giá trị lớn nhất của x với giá trị lớn nhấtcủa y.
VD: Màn hình máy tính có nhiều loại với độ phân giải khác nhau: mànhình CGA (Color Graphic Adaptor) có độ phân giải 320 x 200; màn hình VGA(Video Graphic Array) độ phân giải 1280 x 800;
Rõ ràng màn hình có độ phân giảI càng cao thì ta có cảm giác nó càng
"mịn" hơn so với loại có độ phân giải thấp hơn
* Mức xám (Gray level)
Mức xám là kết quả sự mã hoá tương ứng một cường độ sáng của mỗi điểmảnh với một giá trị số – kết quả của quá trình lượng tử hoá
Các thang giá trị mức xám thông thường: 16,32,64,128,256 Trong đó mức
256 được dùng rất phổ biến do máy tính dùng 1 byte(8 bit) để biểu diễn mứcxám, mà mức xám lại dùng 1 byte để biểu diễn: 28=256 mức, tức là từ mức 0đến mức 255
Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác ) vớimức xám ở các điểm ảnh có thể khác nhau
Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức ding 1 bit mô tả 21
mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trị hoặc là 1 hoặc
là 2
Ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mức màu(do thế giới màu được tạo nên từ 3 màu cơ bản: đỏ (red), lục (blue) và lơ(green)) Do đó có 28*3 =224=16,7 triệu màu
* Biểu diễn ảnh
Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh
là pixel Do đó ta có thể biểu diễn một ảnh bởi một hàm 2 biến chứac thông tin
Trang 6Các mô hình biểu diễn ảnh cho ta một mô tả lô gic hay định lượng các tính chấtcủa hàm này Chất lượng ảnh hoặc tính hiệu quả của các kỹ thuật xử lý phụthuộc vào nhiều yếu tố như: độ phân giảI, nhiễu,
Để xử lý được ảnh, thì ảnh đó phải được lấy mẫu (sample) rồi lượng tử hoá(quantization) Tức là đầu tiên chuyển từ ảnh tương tự sang ảnh số sau đó lưugiá trị của từng điểm ảnh với một số hữu hạn các mức xám
* Tăng cường và khôi phục ảnh
Tăng cường ảnh (image enhancement):
Khi ảnh được chuyển từ dạng này sang dạng khác bởi các quá trình như:truyền ảnh, quét ảnh,… thì ảnh nhận được thường có chất lượng thấp hơn so vớiảnh ban đầu Để giúp người ta có thể quan sát bức ảnh một cách chính xác hơnthì đòi hỏi phải có biện pháp để nâng cao chất lượng ảnh Qúa trình này đượcgọi là tăng cường ảnh (image enhancement)
Tăng cường ảnh giúp loại bỏ các suy giảm (degradation) gây ra bởi hệthống xử lý hoặc kênh xử lý ảnh Ngày nay, nhu cầu phát triển các hệ thống tựđộng cho việc xử lý hình ảnh ngày càng phát triển, kéo theo nó là sự cần thiếttrong việc loại bỏ sai số cũng như các yếu tố nhiễu trong qúa trình xử lý Do đó,tăng cường ảnh có thể được coi như một tập hợp các kỹ thuật để nâng cao chấtlượng hình ảnh đồng thời tập hợp này cũng được ding để nâng cao độ chính xáctrong quá trình tìm kiếm tự động và chuyển đổi dạng của bức ảnh
Các kỹ thuật tăng cường ảnh có thể kể đến: kỹ thuật tương phản (contrast),ánh xạ (mapping- gán mỗi mức xám từ ảnh gốc với một mức xám khác của ảnh
đã được biên dịch),… Nói chung, các kỹ thuật tăng cường ảnh này đều nhằmmục đích đạt được kết qủa tốt nhất Những kỹ thuật này thường dựa trên các sựkết hợp giữa các phương pháp biến đổi trên miền không gian và miền tần số Khôi phục ảnh (image restoration):
Trang 7Khôi phục ảnh là quá trình loại bỏ các suy giảm (degradation) trong ảnh.
Có nhiều nguyên nhân dẫn đến sự suy giảm
Khi camera không tập trung tiêu cự một cách hợp lý có thể dẫn đến bứcảnh bị "nhòe"
Khi chụp ảnh trong điều kiên thời tiết không thuận lợi: sương mù, qúa nắngnóng,… cũng có thể làm cho bức ảnh bị ‘nhòe’
Chụp ảnh các vật đang chuyển động cũng có thể gây "nhòe" cho bức ảnh
Do có nhiều nguyên nhân gây nên suy giảm ảnh vì vậy, đối với mỗi loạinguyên nhân phải có các cách phục hồi khác nhau Khôi phục ảnh phần lớnđược thực hiện bằng cách tìm ra các giảI thuật nhằm phục hồi lại các thông tin
bị thất lạc trong quá trình xử lý ảnh
Chúng ta cũng cần phân biệt tăng cường ảnh với khôi phục ảnh: trong khităng cường ảnh nhằm tăng chất lượng của bức ảnh thì khôi phục ảnh nhằm đưalại hình ảnh gốc của bức ảnh đã bị suy giảm Các kỹ thuật tăng cường ảnh không
áp dụng được với khôi phục ảnh
* Biến đổi ảnh (image transformation)
Thuật ngữ biến đổi ảnh thường dùng để nói tới các kỹ thuật dùng để biếnđổi ảnh Ở đây ảnh có thể được coi như một chuỗi các tín hiệu một chiều đượcbiểu diễn bởi các hàm cơ sở Có nhiều biến đổi được dùng như: biến đổi Fourier,cosin, sin, karhumen loeve,…
Trong khuôn khổ luận văn này, ở phần sau tôI sẽ trình bày về các biến đổiFourier: DFT, FFT, IDFT,… Đây là các biến đổi rất phổ dụng và đã được tôithực tế áp dụng trong quá trình nghiên cứu
* Phân tích ảnh (image analysis)
Sau các bước tiền xử lý ảnh, ảnh đã được tăng cường hay được khôi phục
để làm nổi các đặc trưng chủ yếu Lúc này nó bắt đầu được đưa vào quá trìnhphân tích Quá trình phân tích ảnh gồm các công đoạn: trích chọn các đặc tính
Trang 8(feature extraction), phân đoạn ảnh (segmentation) thành các phần tử Tuỳ theomục đích của việc xử lý, các giai đoạn tiếp theo của quá trình phân tích ảnh cóthể là nhận dạng ảnh (phân thành các lớp có miêu tả) hay là giảI thích và miêu tảảnh Hình 1 mô tả tóm lược các bước của quá trình phân tích ảnh:
Hình vẽ trang 115
Hình 1 Các bước trong phân tích ảnhPhân tích ảnh thường dựa trên việc phân tích các đặc trưng của ảnh: mật
độ xám, phân bố xác suất, phân bố không gian, biên ảnh,…
1.3 Nhận dạng và phân loại ảnh (recognition and classification of image partterns)
* Nhận dạng ảnh (recognition of image partterns):
Khi một bức ảnh đã được phân đoạn, nhiệm vụ tiếp theo là nhận dạng vậtthể hoặc vùng đã được phân đoạn Mỗi một vật thể là một thành phần ở trongảnh và các giá trị đo được là các đặc tính của thành phần đó Một tập các vật thểcùng có các đặc tính giống nhau được gọi là một ‘lớp vật thể’(pattern class) Theo đó có thể định nghĩa, nhận dạng là quá trình phân loại các đối tượngđược biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp (gán chođối tượng một tên gọi) dựa theo những quy luật và các mẫu chuẩn
Sự nhận dạng ảnh thường dựa trên nhiều tính chất của vật và với mỗi tínhchất đều có các kỹ thuật nhận dạng khác nhau VD: Mỗi chữ cái trong tiếng Anhđều là một tập các đường thẳng đứng, ngang, chéo hoặc cong Trong khi chữ ‘A’được mô tả bởi 2 đường chéo và một đường nằm ngang thì chữ ‘B’ được mô tảbởi một đường thẳng đứng với 2 đoạn cong Một số tính chất của các vật thể 2hoặc 3 chiều là diện tích, thể tích, chu vi, bề mặt,… có thể đo được thông qua
ảnh đầu ra của
quá trình tiền XL Trích chọnđặc tính Phânđoạn Phânloại
Giải thích
Trang 9Trích chọn đặc tính
Thu nhận thông tin
Bộ phân loại
việc tính toán số ‘pixel’ Tương tự như vậy, bang của một vật được đặc trưng bởiđường biên của nó Một số tham số để xác định bang của một vật là cac mô-ment bất biến (invariant moment), đường trung bình (medial axis) của vật thể …Mầu của một vật cũng là đặc điểm hết sức quan trọng được dùng trongnhận dạng Kỹ thuật dùng để phát hiện các đặc tính của vật thể gọi là kỹ thuậttrích chọn đặc tính (feature extraction) Khi đó vật thể được miêu tả như một tậpcác đặc tính Sự lựa chọn và tách lấy các tính chất thích hợp được coi như là vấn
đề cơ bản đầu tiên trong nhận dạng ảnh
* Phân loại thành phần ảnh (classification of image patterns)
Phân loại là một công đoạn quan trọng trong quá trình nhận dạng vật Đã
có nhiều kỹ thuật phân loại được sử dụng trong việc nhận dạng thành phần Một
số kỹ thuật phân loại được biết như là những kỹ thuật lý thuyết chính xác Vớinhững kỹ thuật lý thuyết chính xác này, phân loại một thành phần chưa biếtđược quyết định dựa trên một số nguyên tắc hoặc đã xác định hoặc có ý nghĩathống kê hoặc thậm chí đôI khi còn chưa được xác định rõ Hình 1 thể hiện quátrính phân loại
Các kỹ thuật nhận dạng vật có mẫu chuẩn được chia làm 2 loại chính:
- Phương pháp phân loại dựa trên việc thu nhận có giám sát (supervised learning).
- Phương pháp phân loại sử dụng các kỹ thuật không cần giám sát (nonsupervised learning).
Trang 10Các giải thuật phân loại có giám sát có thể được phân thành các loại nhỏ hơn:
* Phân loại dựa vào tham số (Parametric classifiers)
* Phân loại không cần tham số (Nonparametric classifiers)
Đối với phân loại có giám sát dựa trên tham số, thiết bị phân loại lấy mẫuvới một tập gồm nhiều mẫu thành phần xác định nhằm tính toán các thông sốthống kê của mỗi loại thành phần như: trung bình số học, công sai… Các vectorđặc tính đầu vào đạt được trong thời gian lấy mẫu của phân loại có giám sátđược coi như các biến Guass
Các giải thuật không cần giám sát thường được sử dụng trong các bộ phânloại theo khoảng cách nhỏ nhất (minimum distance classifer) và bộ phân loạitương đồng lớn nhất (maximum likelihood classifier)
Ngược lại, một số thông số không được quan tâm trong phương pháp phânloại co giám sát không cần tham số Một số kỹ thuật của loại này là: K điểm lâncận gần nhất (K-nearest neighbors), cửa sổ Parzen (Parzen window)…
Đối với các phương pháp phân loại không cần giám sát, bộ phân loại sẽchia toàn bộ tập thông tin dựa trên một số tiêu chuẩn tương đồng Điều này chokết quả là một tập các thành phần trong đó mỗi thành phần thuộc về một lớp cụthể nào đó
Trang 11PHẦN II: SỬ DỤNG PHẦN MỀM MATLAB XỬ LÝ ẢNH
1 Giới thiệu về MATLAB
MATLAB là ngôn ngữ lập trình bậc cao dùng cho kỹ thuật Đồng thời nó làmôI trường tương tác có thể thực hiện nhiều nhiệm vụ: phát triển giảI thuật,phân tích dữ liệu, tính toán các phép tính số học và hình ảnh hóa dữ liệu So vớicác ngôn ngữ lập trình truyền thống như C, C++ hay Fortran thì MATLAB cónhiều ưu điểm hơn do được tích hợp các hỗ trợ rất mạnh
MATLAB được sử dụng trong nhiều lĩnh vực ứng dụng bao gồm: sử lý tínhiệu và hình ảnh, truyền thông, thiết kế điều khiển, kiểm tra và đo lường, phântích và mô hình hóa các thông tin tài chính, tính toán trong hóa sinh… Ngoài ra,MATLAB còn được tích hợp các hộp công cụ (mỗi hộp gồm hệ thống các hàm
có những chức năng đặc biệt của MATLAB) nhằm giảI quyết các lớp vấn đề cụthể trong các lĩnh vực ứng dụng khác nhau
MATLAB cung cấp nhiều đặc tính tiện lợi đối với việc xử lý và chia sẻcông việc Trong quá trình làm việc với MATLAB, các đoạn mã của nó có thểđược tích hợp với các ngôn ngữ và ứng dụng khác
1.1 Các đặc điểm cơ bản của MATLAB:
* Là ngôn ngữ bậc cao dùng cho các tính toán kỹ thuật
* Là môi trường phát triển để quản lý dữ liệu
* Gồm nhiều công cụ tương tác cho việc khai thác và xử lý dữ liệu, thiết kế
và giảI quyết vấn đề
* Các hàm đồ thị đối với ảnh 2 hoặc 3 chiều cho phép hình ảnh hóa dữ liệu
* Chứa các công cụ để xây dựng các giao diện đồ thị của người sử dụng
Trang 12* Gồm nhiều hàm chức năng dựa trên các giảI thuật cơ sở nhằm tích hợpMATAB với các ứng dụng và ngôn ngữ lập trình khác như: C,C++, Fortran,Java, Microsoft excel…
1.2 Phát triển giải thuật và ứng dụng
MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triểngiúp người sử dụng phát triển và phân tích các giảI thuật và ứng dụng một cáchnhanh chóng
Ngôn ngữ lập trình MATLAB:
Ngôn ngữ lập trình MATLAB hỗ trợ các phép toán đối với ma trận và
vec-tơ cơ sở cho các vấn đề kỹ thuật và khoa học
Việc lập trình và phát triển giảI thuật trong MATLAB có tốc độ nhanh hơn
so với các ngôn ngữ lập trình truyền thống do MATLAB bỏ qua các công việcđiều khiển bậc thấp như khai báo biến, khai báo mẫu dữ liệu và xác định vùngnhớ Trong nhiều trường hợp, MATLAB còn bỏ qua cả sự cần thiếp của cácvòng lặp ‘for’ Kết quả là, một dòng lệnh được viết trong MATLAB có thểtương đương với nhiều dòng lệnh trong C hay C++
Là một công cụ lập trình mạnh, MATLAB vẫn hỗ trợ những đặc tính củamột ngôn ngữ lập trình truyền thống như: toán tử số học, cấu trúc vòng, các cấutrúc và dạng dữ liệu cùng đặc tính gỡ rối
VD: Chương trình biểu diễn thuật toán điều chế tín hiệu truyền thông tạo ra
1024 điểm, thực hiện điều chế, thêm nhiễu phức Gauss và vẽ lại kết quả
% tạo một vector N bit
N = 1024;
bits = rand(N,1)>0.5;
% chuyen sang ky tu
Tx=1-2*bits;