1 giới thiệu chung về phần mềm matlab

33 3.5K 67
1 giới thiệu chung về phần mềm matlab

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Giới thiệu chung phần mềm Matlab 1.1 Khái niệm Matlab Matlab ngơn ngữ lập trình thực hành bậc cao sử dụng để giải tốn kỹ thuật Matlab tích hợp việc tính tốn, thể kết quả, cho phép lập trình, giao diện làm việc dễ dàng cho người sử dụng Dữ liệu với thư viện lập trình sẵn cho phép người sử dụng có ứng dụng sau • • • • • • Sử dụng hàm có sẵn thư viện, phép tính tốn học thơng thường Cho phép lập trình tạo ứng dụng Cho phép mơ mơ hình thực tế Phân tích, khảo sát hiển thị liệu Với phần mềm đồ hoạ cực mạnh Cho phép phát triển, giao tiếp với số phần mềm khác C++, Fortran 1.2 Tổng quan cấu trúc liệu Matlab, ứng dụng Matlab hệ thống tương giao, phần tử liệu mảng (mảng khơng địi hỏi kích thước) Chúng cho phép giải vấn đề liên quan đến lập trình máy tính, đặc biệt sử dụng phép tính ma trận hay vectơ sử dụng ngơn ngữ C học Fortran lập trình thực ứng dụng lập trình câu lệnh gọi từ Matlab Matlab viết tắt từ chữ “MATrix LABoratory” tức thư viện ma trận, từ phần mềm Matlab viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận cách dễ dàng, phần mềm ma trận phát triển cơng trình Linpack Eispack Ngày Matlab phát triển Lapack Artpack tạo nên nghệ thuật phần mềm cho ma trận 1.2.1 Dữ liệu Dữ liệu Matlab thể dạng ma trận (hoặc mảng - tổng quát), có kiểu liệu liệt kê sau đây: • • • Kiểu đơn single, kiểu có lợi nhớ liệu địi hỏi byte nhớ hơn, kiểu liệu không sử dụng phép tính tốn học, độ xác Kiểu double kiểu kiểu thông dụng biến Matlab Kiểu Sparse • • • • Kiểu uint8, uint8, uint16, uint64 Kiểu char ví dụ “Hello” Kiểu cell Kiểu Structure Trong Matlab kiểu liệu double kiểu mặc định sử dụng phép tính số học 1.2.2 Ứng dụng Matlab tạo điều kiện thuận lợi cho: • • • Các khoá học toán học Các kỹ sư, nhà nghiên cứu khoa học Dùng Matlab để tính tốn, nghiên cứu tạo sản phẩm tốt sản xuất 1.2.3 Toolbox công cụ quan trọng Matlab Công cụ Matlab cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế, mơ mơ hình Ta tìm thấy toolbox mơ trường làm việc • • • Mạng nơron Logic mờ Simulink 1.3 Hệ thống Matlab Hệ thống giao diện Matlab chia thành phần: • Mơi trường phát triển Đây nơi đặt công cụ, phương tiện giúp sử dụng lệnh file, ta liệt kê số sau + Desktop + Command Window + Command History + Browsers for viewinghelp • Thư viện, hàm toán học bao gồm cấu trúc tính tổng, sin cosin atan, atan2 etc , phép tính đơn giản đến phép tính phức tạp tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library • Ngơn ngữ Matlab Đó ngôn ngữ cao ma trận mảng, với dòng lệnh, hàm, cấu trúc liệu vào, lập trình hướng đối tượng • Đồ hoạ Matlab Bao gồm câu lệnh thể đồ họa môi trường 2D 3D, tạo hình ảnh chuyển động, cung cấp giao diện tương tác người sử dụng máy tính • Giao tiếp với ngôn ngữ khác Matlab cho phép tương tác với ngôn ngữ khác C, Fortran … 1.4 Làm quen với Matlab Trước tiên để khởi động Matlab bạn kích click vào biểu tượng file Matlab.exe, hình xuất cửa sổ sau (Xem hình vẽ 1.1) Cửa sổ chứa cơng cụ (Giao diện người máy) cần thiết cho việc quản lý files, biến, cửa sổ lệnh, coi desktop panel gồm ô, vùng, quản lý tác dụng cửa sổ nhỏ quản lý desktop Hình 1.1: Cửa sổ làm việc matlab 1.5 Các cửa sổ làm việc Matlab a) Cửa sổ Command Window Là cửa sổ giao tiếp Matlab nơi nhập giá trị biến, hiển thị giá trị, tính tốn giá trị biểu thức, thực thi hàm có sẵn thư viện (dạng lệnh), hàm (dạng function) người dùng lập trình M-file Các lệnh nhập sau dấu nhắc “>>”, có sai sót q trình gõ (nhập) lệnh nhấn phím Enter nhận dấu nhắc “>>” Thực thi lệnh nhấn phím Enter Gõ lệnh sau: >>A=pi/2; >>B=sin(A) B= Hoặc chương trình soạn thảo M-file đây: % Chuong trinh M-file x= 0:pi/6:2*pi; y=sin(x); plot(x, y); % chuong trinh lưu với tên file “ve_sin.m” b)Cửa sổ command History Các dòng mà bạn nhập vào cửa sổ Command Window (các dịng dịng nhập biến, dịng lệnh thực hàm đó) giữ lại cửa sổ Command History, cửa sổ cho phép ta sử dụng lại lệnh cách click chuột lên lệnh biến, bạn muốn sử dụng lại biến Xem hình 1.2 Hình 1.2 Cửa sổ Command History c) Cửa sổ Workspace Là cửa sổ thể tên biến bạn sử dụng với kích thước vùng nhớ (số bytes), kiểu liệu(lớp), biến giải phóng sau lần tắt chương trình (xem hình 1.3) Hình 1.3 Cửa sổ Workspace Ngồi cho phép thay đổi giá trị, kích thước biến cách click chuột lên biến Hoặc click vào nút bên trái cạnh nút save Ví dụ chọn biến (giả sử biến b) click (hoặc click chuột vào nút cạnh nút save) ta cửa sổ sau gọi Variable Editor (xem hình 1.4) Hình 1.4 Cửa sổ Variable Editor Tiêu đề tên biến b, định dạng liệu có tên là: Numeric format, mặc định dạng short, kích thước size by (tức hàng cột) ta thay đổi kích thước cách thay đổi giá trị có kích thước size Dùng cửa sổ để lưu biến liệu biến b, ta thay đổi chúng cách thay đổi giá trị ô Tất biến lưu Workspace thể kích thước (Size), số Bytes kiểu liệu (class) (8 bytes cho phần tử liệu kiểu double cụ thể 24 bytes dành cho b bytes dành cho a) d) Cửa sổ M-file Là cửa sổ dùng để soạn thảo chương trình ứng dụng, để thực thi chương trình viết M-file cách gõ tên file chứa chương trình cửa sổ Commandwindow Khi chương trình viết M-file, tuỳ theo ứng dụng cụ thể, tuỳ theo người lập trình mà chương trình viết dạng sau: • Dạng Script file: Tức chương trình gồm tập hợp câu lệnh viết dạng liệt kê, khơng có biến liệu vào biến lấy giá trị • Dạng hàm function: có biến liệu vào biến e) Đường dẫn thư mục: Nơi lưu giữ files chương trình 1.2 Giới thiệu khái quát ảnh số 1.2.1 Các khái niệm ảnh Ảnh số tập hợp hữu hạn đ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 ảnh Ảnh có độ phân giải cao thể rõ nét đặt điểm hình làm cho ảnh trở nên thực sắc nét a) Điểm ảnh (Picture Element) Điểm ảnh (Pixel) phần tử ảnh số toạ độ (x, y) với độ xám màu định Kích thước khoảng cách điểm ảnh chọn thích hợp cho mắt người cảm nhận liên tục không gian mức xám (hoặc màu) ảnh số gần ảnh thật Mỗi phần tử ma trận gọi phần tử ảnh b) Mức xám ảnh Mức xám: Là kết biến đổi tương ứng giá trị độ sáng điểm ảnh với giá trị ngun dương Thơng thường xác định [0, 255] tuỳ thuộc vào giá trị mà điểm ảnh biểu diễn Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 mức phổ dụng Lý do: từ kỹ thuật máy tính dùng byte (8 bit) để biểu diễn mức xám Mức xám dùng byte biểu diễn: 28 =256 mức, tức từ đến 255) c) Độ phân giải ảnh Định nghĩa: Độ phân giải (Resolution) ảnh mật độ điểm ảnh ấn định ảnh số hiển thị Theo định nghĩa, khoảng cách điểm ảnh phải chọn cho mắt người thấy liên tục ảnh Việc lựa chọn khoảng cách thích hợp tạo nên mật độ phân bổ, độ phân giải phân bố theo trục x y không gian hai chiều Ví dụ: Độ phân giải ảnh hình CGA (Color Graphic Adaptor) lưới điểm theo chiều ngang hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, hình CGA 12” ta nhận thấy mịn hình CGA 17” độ phân giải 320*200 Lý do: mật độ (độ phân giải) diện tích hình rộng độ mịn (liên tục điểm) 2.2 Các cách phân loại ảnh Ảnh nhị phân: Giá trị xám tất điểm ảnh nhận giá trị điểm ảnh ảnh nhị phân biểu diễn bit Ảnh xám: Giá trị xám nằm [0, 255] điểm ảnh ảnh nhị phân biểu diễn byte Ảnh màu: - Hệ màu RGB: Một pixel biểu diễn giá trị (R, G, B) R, G, B giá trị xám biểu biểu diễn byte Khi ta có ảnh 24 bits P(x, y) = (R, G, B) - Hệ màu CMY: phần bù hệ màu RGB (C, M, Y) = (1, 1, 1) - (R, G, B) Hay C+R=M+G=Y+B=1 => Hệ màu thường dùng máy in - Hệ màu CMYK: K độ đậm nhạt màu K= min(C, M, Y) P(x, y) = (C-K, M-K, V-K, K) Ví dụ: Với (C1, M1, Y1) ta có K=min(C1, M1, Y1) CMYK=(C1-K, M1-K, Y1-K, K) Xử lý ảnh với Matlab 3.1 Xử lý ảnh Các bước cần thiết xử lý ảnh Đầu tiên, ảnh tự nhiên từ giới thu nhận qua thiết bị thu (như Camera, máy chụp ảnh) Trước đây, ảnh thu qua Camera ảnh tương tự (loại Camera ống kiểu CCIR) Gần đây, với phát triển công nghệ, ảnh màu đen trắng lấy từ Camera, sau chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý Máy ảnh số thí dụ gần gũi Mặt khác, ảnh tiếp nhận từ vệ tinh; quét từ ảnh chụp máy qt ảnh Hình mơ tả bước xử lý ảnh Hình 1.5 Các bước xử lý ảnh 3.2 Các giai đoạn xử lý ảnh a) Thu nhận ảnh (Image Acquisition) - Ảnh thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máy quét, ảnh vệ tinh… - Mục đích: biến đổi thơng tin hình ảnh cấu trúc lưu trữ máy tính, hiển thị thiết bị ngoại vi máy in, hình… - Gồm hai tiến trình: + Biến đổi lượng quang học thành lượng điện + Tổng hợp lượng điện thành ảnh ma trận số b) Tiền xử lý (Image Processing) - Là trình sử dụng kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mục đích sử dụng - Mục đích: + Điều chỉnh độ chiếu sáng để khắc phục hậu việc chiếu sáng không + Giảm nhỏ thành phần nhiễu ảnh tức đối tượng xuất ý muốn + Hiệu chỉnh giá trị độ sáng đối tượng + Chuẩn hoá độ lớn, màu, dạng ảnh +Điều chỉnh lọc để khuyếch đại nén tần số c) Phân đoạn (Segmentation) - Là trình phân chia nội dung đối tượng cần khảo sát khỏi ảnh - Phân chia đối tượng tiếp giáp - Phân tách đối tượng riêng biệt thành đối tượng d) Biểu diễn ảnh (Image Representation) Đầu ảnh sau phân đoạn chứa điểm ảnh vùng ảnh (ảnh phân đoạn) cộng với mã liên kết với vùng lận cận Việc biến đổi số liệu thành dạng thích hợp cần thiết cho xử lý máy tính Việc chọn tính chất để thể ảnh gọi trích chọn đặc trưng (Feature Selection) gắn với việc tách đặc tính ảnh dạng thơng tin định lượng làm sở để phân biệt lớp đối tượng với đối tượng khác phạm vi ảnh nhận Ví dụ: nhận dạng ký tự phong bì thư, miêu tả đặc trưng ký tự giúp phân biệt ký tự với ký tự khác e) Nhận dạng nội suy ảnh (Image Recognition and Interpretation) Nhận dạng ảnh trình xác định ảnh Quá trình thường thu cách so sánh với mẫu chuẩn học (hoặc lưu) từ trước Nội suy phán đoán theo ý nghĩa sở nhận dạng Ví dụ: loạt chữ số nét gạch ngang phong bì thư nội suy thành mã điện thoại Có nhiều cách phân loai ảnh khác ảnh Theo lý thuyết nhận dạng, mơ hình tốn học ảnh phân theo hai loại nhận dạng ảnh bản: - Nhận dạng theo tham số - Nhận dạng theo cấu trúc Một số đối tượng nhận dạng phổ biến áp dụng khoa học công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… f) Cơ sở tri thức (Knowledge Base) Như nói trên, ảnh đối tượng phức tạp đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo • • xảy kết việc giảm kích thước ảnh thường xuất dạng bậc thang ( đặc biệt ảnh có độ tương phản cao ) Antialiasing : Các biện pháp chống cưa cho ảnh Bicubic interpolation : Giá trị pixel tính tốn từ giá trị trung bình 4x4 pixel lân cận Bilinear interpolation : Gía trị pixel tính tốn từ giá trị trung bình 2x2 pixel lân cận Geometric operation : Một thao tác sửa đổi quan hệ hình học gữa pixel ảnh Chẳng hạn thay đổi kích thước ảnh, quay ảnh xén ảnh Interpolation : Quá trình sử dụng để ước lượng giá trị ảnh vị trí pixel Nearest-neighbor interpolation : Các giá trị pixel gán giá trị pixel nằm vùng gần pixel b) Nội suy Nội suy q trình sử dụng để ước lượng giá trị ảnh vị trí pixel Chẳng hạn, ta thay đổi kích thước ảnh, chứa nhiều pixel ảnh gốc, toolbox sử dụng nội suy để tính giá trị cho pixel thêm vào Hàm imresize imrotate sử dụng nội suy hai chiều để thực thao tác Hàm improfile sử dụng nội suy hoá Các phương pháp nội suy - Toolbox sử lý ảnh cung cấp cách nội suy hoá + Nội suy pixel gần ( nearest –neighbor interpolation ) + Nội suy song tuyến tính ( Bilinear interpolation ) + Nội suy song khối ( Bicubic interpolation ) Các phương pháp nội suy làm việc theo cách giống Trong trường hợp, để tính giá trị pixel nội suy, chúng tìm điểm ảnh mà pixel nằm Sau đó, chúng gán giá trị tới pixel cách tính tốn giá trị trung bình có trọng số số pixel lân cận Trọng số dựa sở khoảng cách tới điểm xét - Các phương pháp khác tập pixel mà chúng xem xét: + Với nội suy pixel gần nhất: pixel gán giá trị pixel gần Các pixel khác khơng xem xét + Nội suy song tuyến tính, giá trị pixel giá trị trung bình theo trọng số 2x2 pixel lân cận + Nội suy song khối: giá trị pixel trung bình có trọng số 4x4 pixel lân cận Số lượng pixel xem xét ảnh hưởng đến độ phức tạp tính tốn Vì vậy, phương pháp song tuyến tính nhiều thời gian phương pháp thứ phương pháp song khối nhiều thời gian song tuyến tính Tuy nhiên, số lượng pixel lớn hơn, độ xác tốt Kiểu ảnh - Các hàm sử dụng tuyến tính yêu cầu tham số phương pháp nội suy Với hầu hết hàm, phương pháp mặc định sử dụng nearestneighbor interpolation Phương pháp tạo kết chấp nhận cho hầu hết ảnh phương pháp thích hợp với ảnh số Với ảnh cường độ hay RGB, nhiên ta thường kiểu song tuyến tính song khối phương pháp cho kết tốt Với ảnh RGB, nội suy thường thực mặt phẳng R,B,G cách riêng biệt Với ảnh nhị phân, nội suy gây ảnh hưởng mà ta nhận thấy Nếu sử dụng nội suy song tuyến tính song khối, giá trị tính tốn cho pixel ảnh khơng hồn toàn Ảnh hưởng ảnh kết phụ thuộc vào lớp ảnh vào: + Nếu lớp ảnh vào double, ảnh ảnh đen trắng thuộc lớp double Ảnh không ảnh nhị phân bao gồm giá trị khác + Nếu ảnh vào uint8, ảnh ảnh nhị phân thuộc lớp uint8 Giá trị pixel nội suy làm trịn thành Vì , ảnh thuộc lớp uint8 Nếu sử dụng phương pháp nearest-neighbor interpolation, ảnh ln ảnh nhị phân giá trị pixel nội suy lấy trực tiếp từ ảnh vào • • c) Thay đổi kích thước ảnh - Để thay đổi kích thước ảnh, sử dụng hàm imresize Sử dụng hàm ta có thể: + Chỉ kích thước ảnh kết + Chỉ phương pháp nội suy sử dụng + Chỉ lọc sử dụng để ngăn ngừa tượng cưa Chỉ kích thước cho ảnh kết - Sử dụng hàm imresize, ta chó thể kích thước ảnh kết theo hai cách: + Bằng cách hệ số phóng đại sử dụng ảnh + Bằng cách chiều ảnh kết Sử dụng hệ số phóng đại ảnh - Để mở rộng ảnh, hệ số phóng đại lớn Để thu nhỏ ảnh, hệ số phóng đại nằm Chẳng hạn, lệnh sau tăng kích thước ảnh I lên 1.25 lần: Hình Ảnh trước sau imresize I = imread('circuit.tif'); J = imresize(I,1.25); imshow(I) figure, imshow(J) • Chỉ định kích thước ảnh - Ta kích thước ảnh cách truyền véc tơ chứa số lượng hàng cột ảnh sau Những lệnh sau tạo ảnh Y với 100 hàng 150 cột Y = imresize(X,[100 150]) Chú ý: Nếu kích thước khơng có tỉ lệ với ảnh vào, ảnh bị biến dạng • Chỉ định phương pháp nội suy sử dụng - Theo mặc định, hàm imresize sử dụng phương pháp nội suy pixel gần (nearest – neighbor interpolation) để tính giá trị pixel ảnh Tuy nhiên, ta định phương pháp nội suy khác Bảng sau liệt kê phương pháp nội suy trợ giúp theo thứ tự độ phức tạp Giá trị Phương pháp nội suy tham số ‘nearest’ Nội suy phixel gần ( mặc định ) ‘bilinear’ Nội suy song tuyến tính ‘biculic’ Nội suy song khối Trong ví dụ sau, hàm imresize sử dụng phương pháp nội suy song tuyến tính: Y=imresize(X, [100 150],’bilinear’); • Sử dụng lọc để ngăn chặn tượng cưa - Việc giảm kích thước (hình học) ảnh gây ảnh hưởng định lên ảnh chẳng hạn tượng xuất cưa biên ảnh Điều thông tin bị ta giảm kích thước ảnh Răng cưa xuất gợn sóng ảnh sau - Khi giảm kích thước ảnh sử dụng nội suy song tuyến tính song khối, hàm imresize tự động áp đặt lọc thông thấp lên ảnh trước nội suy Điều để giảm ảnh hưởng cưa ảnh Ta kích thước lọc lọc khác thay Chú ý: Thậm chí sử dụng lọc thông thấp, chất lượng ảnh bị ảnh hưởng thông tin bị trình nội suy - Hàm imresize khơng áp đặt lọc thông thấp lên ảnh phương pháp nội suy pixel gần sử dụng Phương pháp nội suy ban đầu sử dụng với ảnh số lọc thơng thấp khơng thích hợp cho kiểu ảnh - Ta lọc tự tạo thay cho lọc có sẵn Hàm imresize Cú pháp hàm sau: • B = imresize(A,m) B = imresize(A,m,method) B = imresize(A,[mrows ncols],method) B = imresize( ,method,n) B = imresize( ,method,h) Diễn giải + B=imresize(A,m): Trả lại ảnh B lớn gấp m lần ảnh A (kích thước hình học) sử dụng phương pháp nội suy mặc định (nearest - neighbor interpolcation) A ảnh số, ảnh đen trắng, RGB ảnh nhị phân Nếu m nằm 1, B nhỏ A Nếu m lớn 1, B lớn A + B=imresize(A,m,method): Trả lại ảnh lớn gấp m lần ảnh A sử dụng phương pháp nội suy method method chuỗi phương pháp nội suy sử dụng chẳng hạn: ‘nearest’,’bilinear’,’bicubic’ + B=imresize(A, [mrows ncols],method): Trả lại ảnh với kích thước vector [mrows ncols] Nếu kích thước không tỉ lệ với ảnh vào, ảnh bị biến dạng Khi kích thước ảnh nhỏ kích thước ảnh vào phương pháp nội suy sử dụng ‘bilinear’ ‘bicubic’, hàm imresize áp đặt lọc thông thấp trước tuyến tính hố để giảm tượng cưa Kích thước mặc định 11x11 Ta thứ tự khác cho lọc mặc định sử dụng cấu trúc: B=imresize(…,method,n): n số nguyên kích thước lọc – nxn Nếu n=0, hàm imresize bỏ qua bước lọc Ta lọc riêng sử dụng cú pháp: • B=imresize(…,method,h): Trong h lọc FIR hai chiều ( trả hàm ftrans2, fwind1, fwind2 fsamp2 ) d) Quay ảnh - Để quay ảnh, sử dụng hàm imrotate Hàm 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 giá trị dương, hàm imrotate quay ảnh theo chiều ngược chiều kim đồng hồ Nếu giá trị âm, hàm quay ảnh theo chiều kim đồng hồ Ví dụ sau quay ảnh 35 độ theo chiều ngược chiều kim đồng hồ: J=imrotate(I,35 ) ; - Một số tham số tuỳ chọn ta truyền vào cho hàm bao gồm: + Phương pháp nội suy sử dụng + Kích thước ảnh Chỉ định phương pháp nội suy sử dụng - Theo mặc định, hàm imrotate sử dụng phương pháp nội suy thứ (nearest-neighbor interpolation) để tính giá trị pixel ảnh Tuy nhiên, ta phương pháp nội suy khác như: ‘bilinear ‘,’bicubic’ Ví dụ sau quay ảnh 35 độ ngược chiều kim đồng hồ sử dụng nội suy song tuyến tính: I = imread('circuit.tif'); J = imrotate(I,35,'bilinear'); imshow(I) figure, imshow(J) • • • Hình Ảnh trước sau imrotate Chỉ định kích thước ảnh Theo mặc định, hàm imrotate tạo ảnh đủ lớn để bao gồm toàn pixel ảnh gốc Các pixel nằm biên ảnh gốc gán giá trị thể màu đen ảnh Nếu ta chuỗi ‘crop’ tham số, hàm imrotate xén ảnh tới kích thước ảnh vào Hàm imrotate Cú pháp sau: B = imrotate(A,angle) B = imrotate(A,angle,method) B = imrotate(A,angle,method,bbox) Diễn giải + B=imrotate(A,angle): Quay ảnh A góc angle độ theo chiều ngược chiều kim đồng hồ, sử dụng phương pháp nội suy pixel gần Để quay theo chiều kim đồng hồ truyền giá trị âm cho tham số angle + B=imrotate(A,angle,method): Quay ảnh A góc angle độ theo chiều kim đồng hồ sử dụng phương pháp nội suy method + B=imrotate(A,angle,method,bbox): Quay ảnh A góc angle độ Tham số bbox hộp biên ảnh trả bbox chuỗi nhận giá trị sau: ‘crop’: Ảnh B bao gồm phần trung tâm ảnh quay có kích thước với ảnh A ‘loose’: ( Mặc định ): Ảnh B bao gồm toàn ảnh quay lớn ảnh A Hàm imrotate thiết lập giá trị cho pixel ngồi biên ảnh gốc Ví dụ : - Ví dụ đọc ảnh quang phổ ánh sáng mặt trời lưu định dạng FITS quay theo chiều ngang I = fitsread('solarspectra.fts'); I = mat2gray(I); J = imrotate(I,-1,'bilinear','crop'); imshow(I) figure, imshow(J) Hình Ảnh quay theo chiều ngang e) Xén ảnh (image cropping) - Để trích vùng chữ nhật ảnh, sử dụng hàm imcrop Hàm imcrop chấp nhận hai tham số chính: + Ảnh cần xén + Các góc hình chữ nhật xác định vùng xén - Nếu ta gọi hàm imcrop mà không hình chữ nhật, ta xén ảnh theo 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 cách nhấn giữ phím chuột trái di chuyển để chọn vùng xén Khi chọn xong nhả chuột Trong ví dụ sau, ta hiển thị ảnh gọi hàm imcrop Hàm imcrop hiển thị ảnh hình đợi ta vẽ vùng chữ nhật cần xén ảnh imshow circuit.tif I=imcrop; Imshow(I); • Hình Ảnh trước sau imcrop Hàm imcrop - Cú pháp sau: I2 = imcrop(I) X2 = imcrop(X,map) RGB2 = imcrop(RGB) • • I2 = imcrop(I,rect) X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect) [ ] = imcrop(x,y, ) [A,rect] = imcrop( ) [x,y,A,rect] = imcrop( ) Diễn giải - Hàm imcrop xén ảnh theo hình chữ nhật định I2=imcrop(I) ; X2=imcrop(X,map); RGB2=imcrop(RGB); Hàm imcrop hiển thị ảnh I đợi ta hình chữ nhật cần xén chuột - Nếu ta bỏ qua tham số, hàm imcrop thao tác ảnh trục - Để định hình chữ nhật ta dùng trỏ chuột nói - Ta kích thước hình chữ nhật mà khơng thao tác trực tiếp cú pháp sau: I2 = imcrop(I,rect) X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect) Trong đó: rect vector bốn phần tử dạng [xmin ymin width height], giá trị toạ độ không gian Để định toạ độ không theo toạ độ không gian cho ảnh vào, đặt trước tham số khác với vector hai phần tử Xdata Ydata Chẳng hạn: […]=imcrop(x,y,…) - Nếu ta cung cấp tham số phụ, hàm imcrop trả lại thông tin vùng chữ nhật chọn hệ toạ độ ảnh vào Chẳng hạn: [A,rect] = imcrop( ) [x,y,A,rect] = imcrop( ) A ảnh ra, x y Xdata Ydata ảnh vào Chú ý: - Do rect tập hợp toạ độ không gian, phần tử width height rect khơng ln ln tương ứng xác với kích thước ảnh Chẳng hạn, giả sử rect [20 20 40 30], sử dụng hệ toạ độ không gian theo mặc định Góc trái vùng chữ nhật chọn tâm pixel (20,20) góc phải vùng chữ nhật tâm pixel (50,60) Ảnh ảnh có kích thước 31x41 30x40 Điều ảnh bao gồm tất pixel ảnh vào hoàn toàn phần bao bọc vùng chữ nhật Ví dụ I = imread('circuit.tif'); I2 = imcrop(I,[75 68 130 112]); imview(I), imview(I2) Hình Ảnh trước sau imcrop theo tọa độ cho trước f) Các biến đổi ảnh thông dụng - Để thực biến đổi không gian ảnh chiều, sử dụng hàm imtransform Hàm chấp nhận hai tham số chính: • o o • Ảnh cần biến đổi Một cấu trúc biến đổi gọi TFORM kiểu biến đổi ta muốn thực Chỉ kiểu biến đổi - Ta kiểu biến đổi cấu trúc TFORM Có hai cách để tạo cấu trúc TFORM: • o o • Sử dụng hàm maketform Sử dụng hàm cp2tform Sử dụng hàm maketform - Khi sử dụng hàm này, ta kiểu biến đổi ta muốn thực Các kiểu biến đổi mà maketform trợ giúp bao gồm: + ’ affine’: Biến đổi bao gồm: translation ( dịch ), rotation ( quay ), • • scaling, stretching shearing Các đường thẳng đường thẳng, đường song song song song hình chữ nhật bị biến đổi + ’box’: Một trường hợp đặc biệt affine chiều dời định tỉ lệ độc lập + ‘composite ‘: Bao gồm tổ hợp hai hay nhiều phép biến đổi + ‘custom ‘: Biến đổi người dùng tự định nghĩa, cung cấp hàm thuận nghịch gọi hàm imtransform + ‘projective ‘: Biến đổi đường thẳng giữ nguyên đường song song đồng quy lại thành điểm Sử dụng cp2tform - Ta sử dụng hàm để tạo cấu trúc TFORM ta muốn thi hành biến đổi cần khít với điểm liệu biến đổi đa thức Chú ý: Khi sử dụng với hàm imtransform, cấu trúc TFORM phải định nghĩa biến đổi chiều Nếu ảnh chứa nhiều chiều chẳng hạn ảnh RGB, biến đổi chiều áp đặt tới tất mặt phẳng chiều theo chiều cao Để định nghĩa biến đổi n chiều sử dụng hàm imformarrray Thực biến đổi - Khi ta định nghĩa cấu trúc TFORM, ta thi hành biến đổi cách gọi hàm imtransform Chẳng hạn, đoạn mã sau sử dụng hàm để thi hành biến đổi projective cho ảnh bàn cờ: I = checkerboard(20,1,1); figure; imshow(I) T = maketform('projective',[1 1; 41 1; 41 41; 41], [5 5; 40 5; 35 30; -10 30]); R = makeresampler('cubic','circular'); K = imtransform(I,T,R,'Size',[100 100],'XYScale',1); figure, imshow(K) Hình Ảnh trước sau imtransforms - Các tuỳ chọn hàm imtransform cho phép ta điều khiển nhiều khía cạnh việc biến đổi Chẳng hạn, ý ảnh bị biến đổi xuất nhiều copy ảnh gốc Điều nhận tuỳ chon ‘size’.Xem thêm Help Online • • • Hàm imtransform - Áp đặt biến đổi không gian chiều lên ảnh Cú pháp B = imtransform(A,TFORM) B = imtransform(A,TFORM,INTERP) [B,XDATA,YDATA] = imtransform( ) [B,XDATA,YDATA] = imtransform( ,param1,val1,param2,val2, ) Diễn giải + B=imtransform(A,TFORM ): biến đổi ảnh A theo cấu trúc định nghĩa TFORM Cấu trúc trả từ hàm maketform cp2tform Nếu ndims(A)>2 ảnh RGB biến đổi không gian chiều áp đặt tới tất mặt phẳng theo chiều cao Khi sử dụng cú pháp này, hàm imtransform tự động dịch gốc ảnh để ảnh hiển thị nhiều + B=imtransform(A,TFORM, INTERP): dạng phép nội suy sử dụng INTERP giá trị ‘nearest’, ‘bicubic’ ‘bilinear’ Tương tự, INTERP cấu trúc trả từ hàm makeresampler Tuỳ chọn cho phép điều khiển nhiều lên việc lấy mẫu lại (resampling) + [B,XDATA,YDATA]= imtransform(…): trả vị trí ảnh B không gian X-Y XDATA YDATA vector hai thành phần Những thành phần XDATA toạ độ x cột đầu cuối B Những thành phần YDATA toạ độ y cột đầu cuối B Bình thường, hàm imtransform tính tốn XDATA YDATA tự động B chứa tồn ảnh biến đổi A Tuy nhiên, ta đè chồng tính tốn tự động xem đây: + [B,XDATA,YDATA] = imtransform( ,param1,val1,param2,val2, ): Chỉ tham số điều khiển nhiều khía cạnh khác biến đổi khơng gian Bảng sau liệt kê tham số mà ta Tham số Diễn giải ‘UData’ Cả hai tham số vector hai phần tử thực ‘Udata’ ‘VData’ ‘Vdata’ vị trí khơng gian ảnh A không gian vào chiều U-V Hai phần tử ‘Udata’ cho toạ độ u (hoành độ ) cột cuối A Hai phần tử ‘Vdata’ cho toạ độ v ( tung độ ) hàng cuối A Giá trị mặc định cho ‘Udata’ ‘Vdata’ tương ứng [1 size(A,2) ] [1 size(A,1) ] ‘Xdata’ Cả hai tham số vector hai phần tử thực vị trí ‘Ydata’ khơng gian ảnh B không gian chiều X-Y Hai phần tử ‘Xdata’ hoành độ x cột cuối B Hai phần tử ‘Ydata’ tung độ hàng cuối B ‘XYScale’ ‘Size’ ‘FillValues’ Nếu ‘Xdata’ ‘Ydata’ không ra, hàm imtransform ước lượng giá trị cho chúng để chứa toàn ảnh bị biến đổi Là vector với hai phần tử thực Phần tử ‘XYScale’ chiều rộng pixel vào không gian X-Y Phần tử thứ hai (nếu tồn tại) chiều cao pixel Nếu ‘XYScale’ có phần tử, giá trị dùng cho chiều rộng chiều cao Nếu ‘XYScale’ không định Size ‘XYScale’ tính tốn từ ‘Size’,’Xdata’ ‘Ydata’ Một vector hai phần tử nguyên không âm ‘Size’ số hàng cột ảnh B Với chiều cao hơn, kích cỡ B lấy trực tiếp từ A Nói cách khác, size(B,k) tương đương với size(A,k) với k>2 Nếu ‘Size’ không định, tính từ ‘Xdata’,’Ydata’ ‘XYScale’ Một mảng chứa nhiều giá trị tô (fill values) Fill values sử dụng cho pixel ảnh vị trí biến đổi tương ứng ảnh vào hoàn toàn viền ảnh A chiều, ‘Fillvalues’ phải vô hướng Tuy nhiên, chiều A lớn 2, ‘FillValues’ mảng mà kích thước thoả mãn ràng buộc sau: size(fill_values,k) phải size(A,k+2) Chẳng hạn, A ảnh RGB unit8 có kích thước 200x200x3 khả ‘FillValues’ bao gồm: 0: Tô với màu đen [0;0;0]: Tô với màu đen 255: Tô với màu trắng [255;255;255]: Tô với màu trắng [0;0;255]: Tô với màu xanh [255;255;0]: Tô với màu vàng Nếu A chiều 200x200x3x10 ‘FillValues’ vơ hướng 1x10,3x1,3x1 Ví dụ Áp phép dịch chuyển ngang tới ảnh cường độ ; I = imread('cameraman.tif'); tform = maketform('affine',[1 0;.5 0; 0 1]); J = imtransform(I,tform); imshow(I), figure, imshow(J) Hình Ảnh trước sau imtransforms với cường độ ảnh Như tìm hiểu xong hàm matlab hỗ trợ cho xử lý ảnh Phần tìm hiểu thuật toán xử lý ảnh _ Reply | Reply with quote | Quote 0# silenthero84 2012-04-27 16:10 thanks ... V-K, K) Ví dụ: Với (C1, M1, Y1) ta có K=min(C1, M1, Y1) CMYK=(C1-K, M1-K, Y1-K, K) Xử lý ảnh với Matlab 3 .1 Xử lý ảnh Các bước cần thiết xử lý ảnh Đầu tiên, ảnh tự nhiên từ giới thu nhận qua thiết... checkerboard(20 ,1, 1); figure; imshow(I) T = maketform(''projective'', [1 1; 41 1; 41 41; 41] , [5 5; 40 5; 35 30; -10 30]); R = makeresampler(''cubic'',''circular''); K = imtransform(I,T,R,''Size'', [10 0 10 0],''XYScale'' ,1) ;... thành phần màu (1, 1, ) hiển thị với màu trắng Ba thành phần màu pixel lưu trữ với chiều thứ mảng liệu Chẳng hạn, giá trị màu R, G, B pixel (10 , 5) lưu trữ RGB (10 , 5, 1) , RGB (10 , 5, 2) RGB (10 ,

Ngày đăng: 12/05/2013, 09:08

Hình ảnh liên quan

Hình 1.1: Cửa sổ làm việc của matlab - 1 giới thiệu chung về phần mềm matlab

Hình 1.1.

Cửa sổ làm việc của matlab Xem tại trang 3 của tài liệu.
Hình 1.2 Cửa sổ Command History - 1 giới thiệu chung về phần mềm matlab

Hình 1.2.

Cửa sổ Command History Xem tại trang 4 của tài liệu.
(xem hình 1.3) - 1 giới thiệu chung về phần mềm matlab

xem.

hình 1.3) Xem tại trang 5 của tài liệu.
Hình 1.4 Cửa sổ Variable Editor - 1 giới thiệu chung về phần mềm matlab

Hình 1.4.

Cửa sổ Variable Editor Xem tại trang 6 của tài liệu.
Hình 1.5 Các bước cơ bản trong xử lý ảnh - 1 giới thiệu chung về phần mềm matlab

Hình 1.5.

Các bước cơ bản trong xử lý ảnh Xem tại trang 9 của tài liệu.
Hình 1 Ảnh trước và sau khi imresize - 1 giới thiệu chung về phần mềm matlab

Hình 1.

Ảnh trước và sau khi imresize Xem tại trang 21 của tài liệu.
- 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  - 1 giới thiệu chung về phần mềm matlab

i.

ệ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 Xem tại trang 21 của tài liệu.
Hình 3 Ảnh được quay theo chiều ngang - 1 giới thiệu chung về phần mềm matlab

Hình 3.

Ảnh được quay theo chiều ngang Xem tại trang 25 của tài liệu.
+ Các góc của hình chữ nhật xác định vùng xén - 1 giới thiệu chung về phần mềm matlab

c.

góc của hình chữ nhật xác định vùng xén Xem tại trang 25 của tài liệu.
Hình 5 Ảnh trước và sau khi imcrop theo 1 tọa độ cho trước - 1 giới thiệu chung về phần mềm matlab

Hình 5.

Ảnh trước và sau khi imcrop theo 1 tọa độ cho trước Xem tại trang 27 của tài liệu.
Hình 7 Ảnh trước và sau khi imtransforms với 1 cường độ ảnh - 1 giới thiệu chung về phần mềm matlab

Hình 7.

Ảnh trước và sau khi imtransforms với 1 cường độ ảnh Xem tại trang 31 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan