Giả thuyết khoa học Sau khi nghiên cứu, tìm hiểu về xử lí tín hiệu hình ảnh với Matlab sẽ làm tài liệu cho những người quan tâm, góp một phần nhỏ bé vào kho tàng tài liệu tham khảo giúp
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ
PHẠM THỊ BÍCH THUẬN
XỬ LÍ TÍN HIỆU HÌNH ANH VOI MATLAB
KHÓA LUẬN TÓT NGHIỆP ĐẠI HỌC
HA NOI, 2013
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ
PHAM THI BiCH THUAN
XU Li TIN HIEU HINH ANH VOI MATLAB
Chuyên ngành: Sư phạm kỹ thuật
KHÓA LUẬN TÓT NGHIỆP ĐẠI HỌC
Người hướng dẫn khoa học
GV Trần Quang Huy
HÀ NỘI, 2013
Trang 3LỜI CÁM ƠN
Trong thời gian thực hiện khoá luận tốt nghiệp, tôi đã nhận được rất
nhiều sự giúp đỡ quý báu của quí thầy cô và các bạn
Trước tiên cho tôi gửi lời cảm ơn sâu sắc đến thầy Trần Quang Huy, người đã trực tiếp giúp đỡ tôi trong suốt thời gian nghiên cứu và thực hiện đề tài
Tôi xin chân thành cảm ơn các thầy cô trong khoa Vật lí đã giúp đỡ tôi
để tôi có thể hoàn thành khoá luận theo đúng thời gian
Tôi xin kính chúc các thầy cô và các bạn luôn dồi dào sức khoẻ, hạnh
phúc và thành công trong cuộc sống
Mặc dù tôi đã cố gắng rất nhiều để hoàn thành đề tài này, song do giới
hạn về mặt thời gian cũng như kiến thức nên nội dung còn nhiều thiếu sót Rất mong nhận được sự đóng góp ý kiến của quý thầy cô và các bạn sinh viên để Luận văn của tôi được hoàn thiện hơn
Tôi xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2013
Sinh viên
Phạm Thị Bích Thuận
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan trước Hội đồng xét khoá luận tốt nghiệp, đây là đề tài
do tôi tự tìm hiểu và nghiên cứu dưới sự hướng dẫn của thầy Trần Quang Huy
Đề tài này không trùng với bất kì đề tài nào trước đây
Nếu sai tôi xin chịu sự kỉ luật trước Hội đồng
Hà Nội, tháng 5 năm 2013
Sinh viên Phạm Thị Bích Thuận
Trang 5DANH MỤC CÁC BÁNG
Bảng thuật ngữ biến đổi không gian ảnh
Bảng các phương pháp nội suy
Bảng thuật ngữ màu sắc
Bảng thuật ngữ phân tích và làm giàu ảnh
Trang 6Cửa số làm việc của matlab
Cửa số Command History
Các giá trị của gamma
Ảnh trước và sau khi cắt
Trang 7MỤC LỤC
Trang phụ bÌa - - Sc nk 1x Sv ST TH TT HH ng
UV) e
IUc oi 0n
Danh mục các bảng, c3 1211311511213 111 1111111111 11111111 111 11g cry Danh muc Cac hinh V6 78 .(1
M000 0 1
)(9)8))001 c1 .5 3
CHUONG 1: TÌM HIỂU CƠ BẢN VẺ MATLAB VÀ ẢNH 3
1.1 Tìm hiểu cơ bản về Matlab 2-2229 E+2E2EESEEEEEE2EEEEEESEErrrerree 3 1.1.1 Khởi động Matlab - c1 1211211151111 111 12111111 1111 11 111 1 cư, 3 1.1.2 Các cửa số làm việc của Matlab -¿- 5s sSkckEkEEEEEEEEEEerksrrkee 4 1.2 Tìm hiểu cơ bản về ảnh s¿25222+2223 2212221221271 7
L.2.1 Khai na 7
1.2.2 Các kiểu ảnh trong Matlab 2-2 5s2S22E2E92E2232212211212221221 2222 7 CHƯƠNG 2: CÁC HÀM XỬ LÍ ẢNH TRONG MATLAB 10
2.1 Đọc và ghi dữ liệu ảnh -. 5c + S132 111 111112115111 1111 11111111111 cty 10 PHO 10
PP cô vn 10
P Nôi na 11
2.2 Các hàm hiển thị anh trong Matlab .0 cecceccccseesseessesssesseessesseeseseeeens 11 2.3 Chuyên đổi giữa các kiêu dữ liệu, kiểu ánh . -2-©-s22z+cse5sz 12 2.3.1 Chuyên đổi giữa các kiểu dữ liệu ảnh -©2¿+s222z+z+zzzzxczx 12
2.3.2 Chuyên đổi giữa các kiểu ảnh - 2-2 E+2xeEEc2EeEEEE2EE2Ex2Exerxcrx 12
2.4.1 Luật cắt bỏ trong số học ánh ¿- 25s xeEkeEEeEEEEE2EE2112112E1 1xx 13
2.4.2 Lời gọi lồng nhau tới hàm số học ảnh -2- -2+2s2+zs+2zz+zxezzz 13
Trang 82.5 Biến đối không gian ảnh 2-52 Sc 9t E1 EE71111111 2112112111 xe 14
PIN án ao 25 2.7.2 Làm việc với các chiều sâu bít màn hình khác nhau . :- - 26 2.7.3 Tính độ sâu bít màn hình ¿+ + +k£ xxx re 26 2.7.4 Chọn độ sâu bít màn hình . - ¿+ 22222222111 *22EE22£EE++zz.xzzexxe 27 2.7.5 Giảm số lượng màu trong một ảnh - 2-2 ©2+2222E2+£s+2zz+zxezzz 27 2.8 Phân tích và làm giàu ảnhh - - 65 + 1E 1E SE SEeEskeskekrrkree 30
2.8.4 Điều chỉnh cường độ ảnh (Intensity Adjustment)
2.8.5 Loại bỏ nhiễu - 55: 5222222 2222112112212212212211121211211211211 21c xe 37 CHƯƠNG 3: MỘT SÓ ỨNG DỤNG XỬ LÍ ẢNH TRONG MATLAB 40
3.2 Tạo ảnh đen trang on ccccecccessesssesssesssssesssesssssesssessessesssessnessessessasseseees 40 3.3 QUay AND 41 3.4 Biến đổi mức xám của AM ooo eec ccc esseesesscseeseesetssessvesesseseeesessesseseees 41
Trang 93.5 Lọc nhiễu (làm mịn ảnh) . + 2 ¿+s 2+ +E+EE+E£EESE2ESEEEEEEerkrrrree 42 KẾT LUẬN - 56c SE E21 1211211211211 11 T1 1 1 1111 tre TÀI LIỆU THAM KHẢO
Trang 10MO DAU
1 Ly do chon dé tai
Bước sang thế kỉ 21, thế ki của khoa học và công nghệ Đòi hỏi con
người cần phải không ngừng học tập, nghiên cứu để bắt kịp với thời đại Dé
phục vụ cho việc học tập và nghiên cứu đó có rất nhiều những công cụ, thiết
bị hay những phần mềm hữu ích giúp con người đây nhanh cũng như đơn giản hoá công việc của mình Đặc biệt là những phần mềm có giao diện cực mạnh như Matlab
Matlab là một môi trường tính toán số và lập trình, được thiết kế bởi
công ty MathWorks Matlab cho phép tính toán số với ma trận, vẽ đồ thị
hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người
dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
Matlab cung cấp công cụ Image Processing toobox chuyên về xử lí ảnh Có thể nói Matlab là một công cụ mạnh giúp cho việc thực hiện các giải thuật xử lí ảnh nhanh chóng và dễ hiểu Sự cần thiết phải sử dụng phần mềm
có giao diện cực mạnh ứng dụng vào xử lí ảnh là vì hình ảnh rất quen thuộc với chúng ta Hình ảnh ở khắp mọi nơi, từ các thiết bị hàng ngày như máy ảnh, điện thoại tới các thiết bị chuyên dụng cho hình ảnh y tế, an toàn giao thông, tự động hoá công nghiệp, và nhiều hơn nữa Khi xử lí những hình ảnh này chúng ta gặp phải những khó khăn khác nhau
Nhưng lĩnh vực xử lí ảnh bằng Matlab vẫn còn khá mới mẻ, chưa được khai thác hết tiềm năng Xuất phát từ yêu cầu thực tiễn trên tôi đã quyết định chọn đề tài: “Xử lí tín hiệu hình ảnh với Matlab”
2 Mục đích nghiên cứu
- Thành thạo các lệnh cũng như các thao tác xử lí ảnh với phần mềm Matlab
Trang 11- Nâng cao kiến thức về ứng dụng công nghệ thông tin trong kĩ thuật
xử lí ảnh
- Nâng cao kĩ năng trình bày nội dung khóa luận, biết cách thực hiện
một đề tài nghiên cứu khoa học
3 Đối tượng, phạm vi nghiên cứu
- Đối tượng nghiên cứu: Phần mém Matlab
- Phạm vi nghiên cứu: Ứng dụng phần mềm Matlab trong xử lí ảnh
4 Giả thuyết khoa học
Sau khi nghiên cứu, tìm hiểu về xử lí tín hiệu hình ảnh với Matlab sẽ làm tài liệu cho những người quan tâm, góp một phần nhỏ bé vào kho tàng
tài liệu tham khảo giúp cho nhiều người biết đến phần mềm hữu hiệu này và
sử dụng nó như một công cụ đắc lực phục vụ cho việc học tập và nghiên cứu của mình
5 Phương pháp nghiên cứu
Kết hợp lí thuyết với thực hành Sử dụng các tài liệu tham khảo và
thực hành trên phần mềm Matlab
6 Cấu trúc cúa khóa luận
Ngoài phần mở đầu, kết luận, tài liệu tham khảo, nội dung khoá luận gồm có 3 chương:
Chương l: Tìm hiểu cơ bản về Matlab và về ảnh
Chương 2: Các hàm xử lí ảnh trong Matlab
Chương 3: Một số ứng dụng xử lí ảnh trong Matlab
Trang 12NỘI DUNG
CHUONG I: TIM HIEU CO BAN VE MATLAB VA ANH
1.1 Tìm hiểu cơ ban vé Matlab
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng dé giải các bài toán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng
có thê thực hiện nhiều ứng dụng thực tế trong điều khiến, viễn thông, xử lý
âm thanh, hình ảnh, video
Matlab cung cấp công cụ Image Processing toobox chuyên về xử lí ảnh Có thể nói Matlab là một công cụ mạnh giúp cho việc thực hiện các giải thuật xử lí ảnh nhanh chóng và dễ thực hiện
1.11 Khởi động Matlab
File Edit View Graphics Debug Parallel Desktop Window Help
DS £RBO & | Bee B | @ || caUserabADocumentsAMATLAB + |) Shortcuts [4] Howto Add [a] What's New
Current Directory '* O # X| Command Window noe x
Ci Name Date Modified >> a= [12 3 4] Name = Value Min Ma:
Hình 1.1: Cửa số làm việc của matlab
Click vào biểu tượng „2s, trên màn hình xuất hiện cửa số như hình 1.1 Cửa số đó chứa các thanh công cụ (giao diện người và máy) cần thiết
Trang 13cho việc quản lý các files, các biến, cửa số lệnh, có thể coi desktop là các panel gồm các ô, vùng, quản lý và tác dụng của từng cửa số nhỏ được quản
lý bởi desktop
1.1.2 Các cửa sổ làm việc của Matlab
1.1.2.1 Cửa số Command Window
Là cửa số giao tiếp chính của Matlab bởi đây là nơi nhập giá trị các biến, hiển thị giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện (dạng lệnh), hoặc các hàm (dạng function) do người dùng lập trình ra trong M-file
Các lệnh được nhập sau dấu nhắc “>>”, và nếu có sai sót trong quá
trình gõ (nhập) lệnh thì hãy nhấn phím Enter cho đến khi nhận được dấu
nhắc “>>” Thực thi lệnh bằng nhắn phím Entcr
Ví dụ: Gõ các lệnh sau:
A=pi/2;
B=sin(A) B=1 1.1.2.2 Cửa số command History
Các đòng mà bạn nhập vào trong cửa số Command Window (các dòng
này có thê là dòng nhập biến, hoặc có thé là dòng lệnh thực hiện hàm nào
đó) được giữ lại trong cửa số Command History, và cửa số này cho phép ta
sử dụng lại những lệnh đó bằng cách click chuột lên các lệnh đó hoặc các biến nếu như bạn muốn sử dụng lại biến đó (xem hình 1.2)
Trang 14
Zi š Name ~ | Value Class |
xem dữ FA x <1x13 double> double
liệu (hoặc ty <1x13 double> double
thay đổi
giá trị)
Hình 1.3: Cửa số Workspace
Ngoài ra nó cho phép thay đổi giá trị, cũng như kích thước của biến
bằng cách click chuột lên các biến Hoặc click vào nút bên trái ngay cạnh nut save
Vi du: khi chọn biến (giả sử là biến b) rồi click (hoặc click chuột vào
nút cạnh nút save) ta được cửa số sau gọi là Variable Editor (xem hình 1.4)
Trang 15[4 Variable Editor - b Lo | © zee)
mặc định là dạng short, kích thước size là I by 4 (tức là một hàng và 4 cột)
ta có thé thay đổi kích thước này bằng cách thay đổi giá trị có trong ô kích
thước size Dùng cửa số này để lưu các biến ở dưới là dữ liệu của biến b, ta
có thể thay đổi chúng bằng cách thay đổi giá trị trong các ô đó Tất cả các biến đều được lưu trong Workspace trong đó thể hiện cả kích thước (Size),
số Bytes va kiéu dif liéu (class) (8 bytes cho mỗi phần tử dữ liệu kiéu double
cu thé là 24 bytes danh cho b va 8 bytes danh cho a)
Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết
dưới dạng liệt kê, không có biến dữ liệu vào và biến lấy giá trị ra
- Dang ham function: co biến đữ liệu vào và biến ra
1.2 Tìm hiểu cơ bản về ảnh
Trang 161.2.1 Khái niệm
Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng
để mô tả ảnh gần với ánh thật Số điểm ảnh xác định độ phân giải của ánh Ảnh có độ phân giải càng cao thì càng thê hiện rõ nét các đặt điểm của tắm
hình càng làm cho tắm ảnh trở nên thực và sắc nét hon
1.2.2 Các kiểu ảnh trong Matlab
1.2.2.1 Anh duoc dinh chi sé (Indexed Images)
ma trận màu (còn gọi là bản đồ màu) map Ma trận dữ liệu có thê thuộc kiểu uint8, uintl6 hodc kiéu double Ma tran màu là một ma trận kích thước mx3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0,1] Mỗi hàng của ma trận xác định thành phần red, green và blue của một màu trong tổng số m màu được sử dụng trong ảnh Giá trị của một phần tử trong ma trận
dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận mau
1.2.2.2 Anh grayscale
Trang 17có thể một trong các kiểu uint8, uintl6, hoặc double Ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắng đen”
Trang 19CHƯƠNG II: CÁC HÀM XỨ LÍ ẢNH TRONG MATLAB
Cu phap: imwrite (A,filename,fmt)
Ham imwrite sử dụng luật sau đây để quyết định lớp lưu trữ được sử dụng trong ảnh kết quả:
- Logical: Nếu định dạng ảnh ra ( Output Image ) được chí rõ là trợ giúp ánh 1 bít, hàm imwrite tạo một file ảnh 1 bít Nếu định dạng ảnh ra được chỉ rõ là không trợ giúp ảnh I bít ( như JPEG ), ham imwrite chuyền ảnh tới một ảnh thuộc lớp uinf8
- Uint8: Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bít, hàm imwrite tạo một ảnh 8 bit
-Uint16: Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bít (PNG hoặc TIFF), hàm ímwrite tạo một ảnh 16 bít Nếu định dạng ảnh ra
không trợ giúp ảnh 16 bít, hàm chuyên đổi dữ liệu ảnh tới lớp uint8 va tao
một ảnh 8 bit
- Double: Matlab chuyên dữ liệu ảnh tới dạng uinf8 và tạo một ảnh
§ bít bởi vì hầu hết các file ảnh sử dụng định dạng 8 bít.
Trang 202.1.3 Ham imfinfo
Ham imfinfo ding dé xem cac thông số của một file ảnh nào đó
Cu phap: imfinfo (filename,fmt)
Thông tin mà ta nhận được phụ thuộc vào kiểu của file nhưng nó luôn bao gồm những thông tin sau:
- Tên của file ảnh
- Định dạng file ảnh
- Số version của định đạng file
- Ngày sửa đổi file gần nhất
- Kích thước file tính theo byte
- Chiều rộng ảnh tính theo pixel
- Chiều cao ảnh tính theo pixel
- Số lượng bít trên một pixel
- Kiểu anh: RGB, chi sé
2.2 Cac ham hién thi anh trong Matlab
Matlab cung cấp hai hàm hiển thi cơ bản là image va imagesc Ngoai
ra trong IPT cũng có hai hàm hiển thị ảnh khác, đó là imview va imshow
- Hàm image (X, Y, C) hiển thị hình ảnh biểu diễn bởi ma trận C kích thước M x N lên trục toạ độ hiện hành X, Y là các vectơ xác định vi tri các pixel C(1,1) và C(M,N) trong hệ trục hiện hành
- Hàm imagesc có chức năng tương tự như hàm image, ngoại trừ việc dữ liệu ảnh sẽ được co dãn đề sử dụng toàn bộ bản đồ màu hiện hành
- Hàm imview cho phép hiển thị hình ảnh trên một cửa số riêng, nền java, gọi là image viewer Image viewer cung cấp các công cụ đò tìm và xác định các giá trị pixel một cách linh hoạt
Trang 21- Hàm imshow cũng tạo một đối tượng đồ hoạ thuộc loại image và hiển thị ảnh trên một figure Hàm imshow sẽ tự động thiết lập các giá trị của các đối tuong image, axes va figure để thực hiện hình ảnh
2.3 Chuyển đổi giữa các kiểu dữ liệu, kiểu anh
2.3.1 Chuyến đổi giữa các kiếu dữ liệu ảnh
Matlab cung cấp sẵn các hàm thực hiện chuyên kiêu cho các ma trận biểu diễn ảnh, bao gồm: im2double, im2uint8, và im2uint16
Tuy nhiên khi thực hiện chuyên kiểu giữa các dữ liệu ảnh cần lưu ý
một số điều sau:
- Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ
liệu dùng ït bit hơn thì một số thông tin chỉ tiết về bức ảnh ban đầu sẽ bị mắt
- Không phải lúc nào cũng có thê chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ không phải là giá trị màu, do đó không thể lượng tử hoá được
2.3.2 Chuyến đổi giữa các kiéu ánh
Danh sách sau đây sẽ liệt kê các hàm được sử dụng trong việc chuyên đổi kiểu ảnh:
- Dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng Tạo
một ảnh chỉ số từ một ảnh RGB
- Gray2ind: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng -Grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách đặt ngưỡng
-Im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ, ảnh chỉ số
hay ảnh RGB trên cơ sở của ngưỡng ánh sáng
- Ind2gray:Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số
- Ind2rgb:Tạo một ảnh RGB từ một ảnh chỉ SỐ
Trang 22- Mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một
Các hàm số học ảnh sử dụng những luật này cho số học nguyên:
- Giá trị vượt quá khoảng của kiểu số nguyên bị cắt bỏ tới khoảng
đó
- Giá trị phân số được làm tròn
Chẳng hạn, nếu dữ liệu có kiểu uint8, kết quả trả về nếu lớn hơn 255
(bao gồm Inf ) thì được gán là 255
2.4.2 Lời gọi lồng nhau tới hàm số học ánh
Ta có thể sử dụng các hàm số học ảnh kết hợp để thực hiện một chuỗi các phép toán Chẳng hạn đề tính giá trị trung bình của hai ảnh:
C=(A+B) /2
Ta có thể nhập vào như sau:
I= imread( rice.png );
12 = imread('cameraman.tif);
Trang 23K = imdivide(imadd(112), 2);
Khi được sử dụng với kiểu uint8 hay uintl6, mỗi hàm số học cắt kết quả của nó trước khi truyền nó cho hàm tiếp theo Sự cắt bỏ này có thê giảm đáng kể lượng thông tin trong anh cuối cùng Một cách làm tốt hơn đề thực hiện một chuỗi các tính toán là sử dụng hàm imlincomb Ham này thi hành tất cả các phép toán số học trong sự kết hợp tuyến tính của độ chính xác kép
và chỉ cắt bỏ kết quả cuối cùng:
K = imlincomb(.5,1.5,12);
2.5 Biến đối không gian ảnh
Biến đổi không gian ảnh là thực hiện ánh xạ giữa vị trí các pixel trong ảnh vào với các pixel trong ảnh ra
Aliasing gốc bị lấy mẫu giảm để tạo ra ít pixel hơn
Aliasing xảy ra như kết quá của việc giảm kích thước ảnh thường xuất hiện dưới dạng bậc thang (đặc biệt trong các ảnh có độ tương phản cao)
Geometric operation Một thao tác sửa đổi quan hệ hình học gữa
các pixel trong một ánh Chẳng hạn thay đổi kích thước ảnh, quay ảnh và xén ảnh
Trang 24
Interpolation Quá trình được sử dụng đê ước lượng gia tri
ảnh ở một vị trí giữa các pixel
Nearest- Các giá trị pixel ra được gán giá trị của pixel
neighbor interpolation | nằm trong một vùng gần pixel đó
2.5.2 Nội suy
Nội suy là quá trình sử dụng để ước lượng một giá trị ảnh ở một vị trí giữa các pixel Chẳng hạn, nếu ta thay đổi kích thước một ảnh, nó sẽ chứa nhiều pIxel hơn ảnh gốc, toolbox sử dụng sự nội suy dé tinh gia tri cho cac pixel thém vao Ham imresize va imrotate sử dụng nội suy hai chiều dé thực hién thao tac cua minh Ham improfile cing st dung su ndi suy hoa
2.5.2.1.Cac phuong phap nội suy
Toolbox xt ly anh cung cấp 3 cách nội suy hoá:
- Nội suy các pixel gần nhất (nearest —neighbor interpolation) -_ Nội suy song tuyến tinh (Bilinear interpolation)
-_ Nội suy song khối (Bicubic interpolation)
Các phương pháp nội suy làm việc theo một cách giống nhau Trong mỗi trường hợp, để tính giá trị của một pixel đã được nội suy, chúng tìm điểm trong ảnh ra mà pixel nằm tại đó Sau đó, chúng gán một giá trị tới các pixel ra bằng cách tính toán giá trị trung bình có trọng số của một số pixel lân cận Trọng số dựa trên cơ sở khoảng cách tới điểm đang xét
Các phương pháp này khác nhau ở tập các pixel mà chúng xem xét:
- Nội suy các pixel gần nhất: pixel ra được gán giá trị của các pixel ở gần nó nhất Các pixel khác không được xem xét
-_ Nội suy song tuyến tính, giá trị của pixel ra là giá trị trung bình theo trọng số của 2x2 pixel lân cận
Nội suy song khối: giá trị của pixel ra là trung bình có trọng số của 4x4 pixel lân cận
Trang 252.5.2.2 Nội suy với các kiểu ảnh khác nhau
Các hàm sử dụng tuyến tính yêu cầu một tham số chỉ ra phương pháp nội suy Với hầu hết các hàm, phương pháp mặc định được sử dụng là nearest-neighbor interpolation Phương pháp này tạo ra một kết quả có thể chấp nhận được cho hầu hết các ảnh và là phương pháp duy nhất thích hợp với ảnh chỉ số Với ảnh RGB, nội suy thường được thực hiện trên mặt phẳng R,B,G một cách riêng biệt
Với ảnh nhị phân, nội suy gây ra những ảnh hưởng mà ta có thể nhận thấy được Nếu sử dụng nội suy song tuyến tính hoặc song khối, giá trị tính toán được cho pixel trong ảnh ra sẽ không hoàn toàn là 0 hoặc 1
2.5.3 Thay đổi kích thước ánh
2.5.3.1 Chỉ ra kích thước của ảnh kết quả
Sử dụng hàm imresize, ta có thể chỉ ra kích thước của ảnh kết quả theo hai cách:
- Chỉ ra hệ số phóng đại được sử dụng trên ảnh
Để mở rộng một ảnh, chỉ ra hệ số phóng đại lớn hon 1 Để thu nhỏ một ảnh, chỉ ra hệ số phóng đại nằm giữa 0 và I Chang hạn, lệnh sau tang kích thước của ảnh I lên 1.25 lần:
1= imread('circuit.tif);
J = imresize(I,1.25);
imshow(1) figure, imshow(J)
Trang 26Chí ý: Nếu kích thước được chỉ ra không có cùng tỉ lệ với ảnh vào, ảnh
ra sẽ bị biến dạng
2.5.3.2 Chỉ ra phương pháp nội suy được sử dụng
Theo mặc định, hàm imresize sử dụng phương pháp nội suy các pixel gần nhất (nearest — neighbor interpolation) dé tinh giá trị các pixel của ảnh ra Tuy nhiên, ta có thể chỉ định các phương pháp nội suy khác Bảng sau đây liệt kê các phương pháp nội suy được trợ giúp theo thứ tự của độ phức tạp
Giá trị tham số Phương pháp nội suy
‘nearest’ Nội suy các phixel gân nhât (mặc định)
‘bilinear’ Nội suy song tuyên tính
“biculic? Nội suy song khôi
2.5.3.3 Sử dụng bộ lọc để ngăn chặn hiện tượng răng cưa
Việc giảm kích thước (hình học) của một ánh có thể gây ra những ảnh hưởng nhất định lên ảnh chẳng hạn như hiện tượng xuất hiện răng cưa tại biên của ảnh Điều này là do thông tin luôn bị mắt khi ta giảm kích thước một ảnh Răng cưa xuất hiện như những gợn sóng trong ảnh sau cùng
Khi giảm kích thước của ảnh sử dụng nội suy song tuyến tính hoặc
song khối, hàm imresize tự động áp đặt một bộ lọc thông thấp lên ảnh trước
khi nội suy Điều này để giảm ảnh hưởng của răng cưa trong ảnh ra Ta có
thé chi ra kích thước của bộ lọc này hoặc chỉ ra một bộ lọc khác thay thế
2.5.4 Quay ảnh
Trang 27Để quay một ảnh, sử dụng hàm imrotate Hàm này chấp nhận hai tham số chính:
- Ảnh cần quay
- Góc quay
Góc quay tính theo độ Nếu ta chỉ ra một giá trị dương, hàm imrotate quay ảnh theo chiều ngược chiều kim đồng hồ Nếu chỉ ra giá trị âm, hàm quay ảnh theo chiều kim đồng hồ Ví dụ sau quay một ánh 35 độ theo chiều ngược chiều kim đồng hồ:
- B= imrotate(A,angle): Quay anh A một góc angle độ theo chiều ngược chiều kim đồng hồ, sử dụng phương pháp nội suy các pixel gần nhất
Đề quay theo chiều kim đồng hồ hãy truyền giá trị âm cho tham số angle
-B= imrotate(A,anglemethod): Quay ảnh A một góc angle độ theo chiều kim đồng hồ sử dụng phương pháp nội suy được chỉ ra trong method
- B= imrotate(A,anglemethod,bbox): Quay ảnh A một góc angle
độ Tham số bbox chỉ ra hộp biên của ảnh trả về
Ví dụ sau quay một ảnh 35 độ ngược chiều kim đồng hồ sử dụng nội suy song tuyến tính:
1= imread('circuit.tif);
J= imrotate(I35, bilinear );
imshow(]);
Trang 28figure, imshow(};
2.5.5 Xén ảnh
Để trích một vùng chữ nhật của một ảnh, sử dụng hàm imcrop Hàm imcrop chap nhan hai tham số chính:
- Ảnh cần xén
- Các góc của hình chữ nhật xác định vùng xén
Nếu ta gọi hàm imcrop mà không chỉ ra hình chữ nhật, ta có thể xén ảnh theo các tương tác Trong trường hợp này,ta sử dụng trỏ chuột để chọn vùng chữ nhật cần xén bằng cách nhắn và giữ phím chuột trái, di chuyển chuột đề chọn vùng xén Khi chọn xong thi nha chuột
Cú pháp của nó như sau:
12 = imcrop(1) X2 = imcrop(X,map) RGB2 = imcrop(RGB)
12 = imcrop(Lrect) X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect) [ ] = imcrop(xy, ) [A,rect] = imcropt ) [xy,A,rect] = imcropt ) Diễn giải:
Ham imcrop xén m6t anh theo một hình chữ nhật được chỉ định