2012-01-23 8 views
7

Tôi có hình ảnh gồm 30 lá khác nhau trong nền trắng được đánh số 1-30. Tôi đang làm việc trên một dự án trong xử lý hình ảnh, nơi người dùng có thể tải một hình ảnh lá mới với nền màu trắng và chương trình sẽ so sánh nó với các hình ảnh trên cơ sở dữ liệu và hiển thị tương tự nhất. Tôi mới đến MATLAB.tính năng trích xuất matlab trong matfile

Làm cách nào để trích xuất các tính năng và lưu trữ nó vào cơ sở dữ liệu (tệp mat) ở định dạng kép?

+0

Trước tiên, bạn phải quyết định ý nghĩa của từ 'tương tự nhất' và 'tính năng' của bạn là gì. Nếu bạn chỉ muốn lưu trữ các giá trị pixel thô thì bạn có thể làm 'x = imread ('file.png'); Y = số không ([30 size (x)]); Y (1,:,:, :) = x; '. –

Trả lời

1

Bạn cần phần phát hiện tính năng trong dự án của mình để trích xuất các tính năng được đặt. Đó sẽ là một hàm MATLAB tạo ra một mảng đầu ra hoặc ma trận với các tính năng. Để biết thời gian nghỉ nào tạo ra các tính năng đó, bạn sẽ cần gắn nhãn dữ liệu bằng các chuỗi. Matlab có cấu trúc để lưu trữ dữ liệu và văn bản như trong ví dụ này lấy từ PRtools:

> struct(A) 
ans = 
     data: [100x3 double] 
    lablist: {2x4 cell} 
     nlab: [100x1 double] 
    labtype: 'leave1' 
    targets: [] 
    featlab: [3x2 char] 
    featdom: {[] [] []} 
     prior: [] 
     cost: [] 
    objsize: 100 
    featsize: 3 
     ident: [100x1 struct] 
    version: {[1x1 struct] '21-Jul-2007 15:16:57'} 
     name: [] 
     user: [] 

Các tính năng có thể được giá trị pixel, ví dụ, vì vậy họ sẽ được lưu trữ bên trong một mảng. Đó là một nhiệm vụ đơn giản nhưng trước tiên bạn cần phải đọc một chút về chủ đề.

Vấn đề chính sẽ là chọn tập huấn luyện và tập kiểm tra (tính năng) cho trình phân loại bạn chọn. Điều đó sẽ phụ thuộc vào số lượng tính năng bạn sử dụng, mức độ tương đồng của chúng và rất nhiều thứ bạn không thể biết trước, do đó bạn sẽ phải thử nghiệm với các tập huấn luyện/thử nghiệm khác nhau và cấu hình tính năng.

Có một hộp công cụ trong thiết kế MATLAB cho mục đích này, vì vậy hãy thử: PRtoolbox.

Chúc may mắn.