MỤC LỤC
Thay cho một ma trận biểu diễn một bức ảnh ta sử dụng một khái niệm vector cú trật tự lexico*. Mỗi vector cột gồm p phần tử đại diện cho mỗi bức ảnh bằng cách tái sắp xếp các hàng trong ma trận. Tiếp đến chúng ta sẽ xây dựng một bức ảnh dữ liệu mẫu S có vector si là cột thứ i của nó.
S+ là ma trận chuyển vị phức liờn hợp của S ()- biểu diễn sự nghịch đảo của ma trận.
Việc phân tích tín hiệu rời rạc theo thời gian trong miền tần số thường được thực hiện rất hiệu quả và tiện lợi bằng bộ vi xử lý tín hiệu số. Để thực hiện việc phân tích này, tín hiệu rời rạc theo thời gian {x(n} cần được chuyển từ miền thời gian sang miền tần số tương ứng thông qua biến đổi Fourier X (ω) của dãy. Tuy vậy, do X (ω) là hàm liên tục của biến tần số nên có thể thấy việc xử lý bằng máy tính của cách biểu diễn này là không thuận tiện.
Để tránh nhược điểm nêu trên có thể đưa ra một cách biểu diễn khác của {x(n} – biểu diễn thông qua việc lấy mẫu phổ X (ω) của tín hiệu. Trước khi nghiên cứu DFT, ta hãy xét việc lấy mẫu của biến đổi Fourier đổi với dãy tín hiệu rời rạc theo thời gian không tuần hoàn và qua đây có thể thiết lập được quan hệ giữa biến đổi Fourier đã được lấy mẫu và DFT. Giả sử tín hiệu X (ω) được lấy mẫu tuần hoàn và khoảng cách giữa hai lần lấy mẫu liên tiếp là bằng nhau và bằng δω radian.
Từ kết quả thu được ở trên ta suy ra phổ của tín hiệu không tuần hoàn rời rạc theo thời gian không tuần hoàn với độ dài hữu hạn L có thể được khôi phục một cách chính xác thông qua các mẫu của nó tại các tần số ωk = 2πk/N nếu N ≥ L. Ở tại các tần số khác, công thức nội suy sẽ cho phép xác định X(ω) thông qua tổ hợp tuyến tính có trọng số của các mẫu phổ. Một điều quan trọng cần lưu ý là các giá trị không được đưa thêm vào sẽ không cung cấp thêm bất kỳ một thông tin nào về phổ X(ω) của dãy x(n) và để có thể khôi phục lại X(ω) có thể sử dụng công thức (3.4.13) với L mẫu được lấy cách đều nhau của X(ω).
Do vai trò quan trọng của DFT trong nhiều lĩnh vực khác nhau nên việc tính toán hiệu quả của DFT là một bài toán được rất nhiều nhà toán học, kỹ sư v.v… dành nhiều thời gian để nghiên cứu. Có thể thấy trong công thức tính DFT, đối với mỗi giá trị của k thì việc tính trực tiếp X(k) sẽ đòi hỏi N phép nhân số phức (4N phép nhân số thực) và N-1 phép cộng số.
* 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ợp MATAB với các ứng dụng và ngôn ngữ lập trình khác như: C,C++, Fortran, Java, Microsoft excel…. MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triển giú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ách nhanh chóng. 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ùng nhớ.
Là một công cụ lập trình mạnh, MATLAB vẫn hỗ trợ những đặc tính của mộ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ấu trú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ả. Trong khi đối với phần lớn các ngôn ngữ lập trình truyền thống phảI trảI qua giai đoạn dịch (compilation) và liên kết (linking) thì MATLAB cho phép người sử dụng có thể thực thi ngay các lệnh hoặc nhóm lệnh cùng lúc.
Trong MATLAB có nhiều hộp công cụ (toolbox) hỗ trợ cho việc tiếp cận dữ liệu như: hộp công cụ cơ sở dữ liệu (Database Toolbox), hộp công cụ thu nhận dữ liệu (Data Acquisition Toolbox) hay hộp công cụ điều khiển thiết bị (Instrument Control Toolbox). Những đặc tính này bao gồm: các hàm vẽ ảnh 2 và 3 chiều, các hàm vẽ thể tích 3 chiều, các công cụ tương tác tạo ảnh, khả năng xuất kết quả dưới các dạng file ảnh thông thường. Đồng thời cũng có thể triển khai các thuật toán cũng như ứng dụng của nó như một chương trình hoặc các khối phần mềm riêng biệt.
MATLAB có hỗ trợ file hình ảnh với nhiều định dạng khác do đó việc xuất kết quả dưới dạng đồ thị hay file ảnh là hết sức dễ dàng. MATLAB cung cấp sẵn các hàm cho việc kết hợp mã của các ngôn ngữ lập trình khác như C, C++, Fortran hay Java với mã chương trình của nó.
Các đoạn mã này có thể được cung cấp cho những người khác hoặc ứng dụng vào các sản phẩm phần cứng hoặc phần mềm cụ thể. Mỗi bức ảnh dạng này được lưu trữ bởi một ma trận trong đó mỗi phần tử của ma trận chỉ có thể có giá trị hoặc 0 (đen) hoặc 1 (trắng). Matlab không xử lý trực tiếp bức ảnh mà làm việc thông qua việc chuyển đổi ảnh về dạng (các) ma trận chứa các thông số của nó.
VD: image=imread(‘picture.jpg’); % gán ảnh có tên picture định dang jpg cho biến image, biến image được lưu trong workspace. Hộp công cụ thu nhân ảnh được dùng để thực hiện chức năng thu nhận ảnh qua các thiết bị được kết nối với máy tính. Sử dụng các hàm chức năng của hộp công cụ này có thể tạo ra một đối tượng thể hiện sự kết nối giữa Matlab và các thiết bị thu hình ảnh cụ thể.
Sử dụng các tính chất của đối tượng giúp kiểm soát nhiều bước trong quá trình thu nhận ảnh như dung lượng dữ liệu video muốn ghi lại. Hộp công cụ sử dụng các thành phần được gọi là các bộ thích ứng dùng để liên kết với các thiết bị thông qua các trình điều khiển. Với hộp công cụ thu nhận hình ảnh, ta có thể nối trực tiếp phần cứng ở trong thanh công cụ và có thể thiết lập các tham số thu nhận đồng thời xem và yêu cầu dữ liệu ảnh.
Matlab thông qua hộp công cụ thu nhận hình ảnh hỗ trợ kết nối với nhiều loại thiết bị thu nhận ảnh bao gồm: các thiết bị camera kỹ thuật số chuyên biệt dựa trên kết nối 1394 (DCAM), các thiết bị hỗ trợ kết nối USB (WEB camera, máy quay kỹ thuật số, cạc chuyển đổi TV…). >> I=imread('C:\Documents and Settings\Hoang Anh Nguyen The\My Documents\My Pictures\me\xe_dien1.jpg');%doc file anh tu dong dan.
Bộ lọc phi tuyến tổng hợp này đạt được bằng cách áp dụng phương trình (4.1.8) với hệ số k tùy thuộc mức độ biến đổi theo tỉ lệ của vật. Trong chương trình, ta sử dụng k=0.1 bởi thực nghiệm đã chứng tỏ giá trị này của k cho kết quả tương quan theo độ nét, khả năng phân biệt và sự bất biến theo độ sáng là tốt nhất. Qua các ví dụ minh họa ở phần trước tôi đã trình bày kết quả đạt được của phương pháp nhận dạng vật với bộ lọc phi tuyến: đơn và tổng hợp.
Với bộ lọc phi tuyến đơn mỗi lần chỉ cho phép nhập một mẫu tham chiếu và việc nhận dạng chỉ là nhận dạng riêng mẫu tham chiếu đó. Trong khi đó, bằng việc sử dụng bộ lọc ECP-SDF bặc k thay vì mỗi lần chỉ nhập được mọt mẫu tham chiếu ta có thể nhập được nhiều mẫu tham chiếu. Về mặt ý tưởng, điều này có vẻ là không khó để thực hiện tuy nhiên các bộ lọc phi tuyến tổng hợp thông thường thường phải đối mặt với vấn đề thời gian xử lý do khối lượng các phép tính toán thường là rất lớn.
Đồng thời bộ lọc cũng nêu lên một giải pháp khả thi đối với việc nhận dạng vật thể khi nó được đặt ở các vị trí khác nhau (với điều kiện có đủ mẫu tham chiếu). Đối với nhận dạng nhiều vật thể trong cùng một bức ảnh, khi có đủ mẫu tham chiếu ta cũng quy về giống như việc giải quyết vấn đề nhận dạng vật dược dặt ở các vị trí khác nhau. Thêm vào đó, bộ lọc ECP-SDF bậc k cũng giải quyết được khá hiệu quả vấn đề nhận dạng vật khi có các thành phần tác động dẫn tới hiện tượng ‘méo’ ở mẫu vật như: vật trong bức ảnh bị thay đổi về góc nhìn điều kiện phản xạ khong phù hợp….
Trong quá trình thực hiện các thí nghiệm và chạy chương trình, do nhiều yếu tố khách quan cũng như chủ quan tác động nên kết quả thu được chưa phải là lý tưởng. * Thực hiện các kỹ thuật tiền xử lý: tách đường bao, tăng độ sắc nét, lọc nhiễu bằng các loại bộ lọc có hiệu quả cao….