Để đóng cửa sổ preview ta click vào nút close trên cửa sổ hoặc dùng lệnh closepreview với tham số là đối tượng lối vào video.
Closepreview(vidobj)
Bước 5: Cấu hình các thuộc tính cho đối tượng
Sau khi tạo được đối tượng lối vào video và xem trước dòng tín hiệu lối vào bây giờ ta muốn thay đổi thuộc tính của ảnh hay các bước của quá trình thu nhận ảnh. Để thực hiện được điều này ta thiết lập các giá trị của các thuộc tính của đối tượng thu nhận ảnh.
Trong phần này sẽ trình bày: Các kiểu của các đối tượng thu nhận ảnh; Làm thế nào để xem toàn bộ các thuộc tính được hỗ trợ bởi các đối tượng ở trên với các giá trị hiện thời của nó; Và làm thế nào để thiết lập các giá trị của các thuộc tính
Các kiểu của các đối tượng thu nhận ảnh
Toolbox xử lý ảnh trong Matlab sử dụng hai loại đối tượng để miêu tả kết nối với các thiết bị thu nhận ảnh đó là loại các đối lối vào video và loại các đối tượng nguồn video (Video input objects and Video source objects ).
Nguyễn Văn Thắng – Luận văn thạc sĩ tổng quan về xử lý ảnh
Một đối tượng lối vào video miêu tả kết nối giữa Matlab và thiết bị thu nhận ảnh ở mức cao. Các thuộc tính được hỗ trợ bởi đối tượng lối vào video là giống nhau cho mọi loại thiết bị. Ta tạo đối tượng lối vào video bằng cách sử dụng câu lệnh videoinput như đã trình bày ở bước 3.
Khi ta tạo đối tượng lối vào video thì toolbox tự động tạo một hoặc nhiều đối tượng nguồn video kết hợp với đối tượng lối vào video. Mỗi đối tượng nguồn video miêu tả một hoặc nhiều nguồn dữ liệu vật lý mà nó xem như là một thực thể đơn. Số lượng đối tượng nguồn video được tạo ra phụ thuộc vào thiết bị và định dạng video ta chọn. Tại một thời điểm chỉ có duy nhất một đối tượng nguồn video tích cực.
Xem các thuộc tính đối tượng
Để xem toàn bộ danh sách của các thuộc tính được hỗ trợ bởi đối tượng lối vào video hoặc đối tượng nguồn video ta sử dụng hàm get
Ví dụ: get(vidobj) >> get(vidobj) General Settings: DeviceID = 1 DiskLogger = [] DiskLoggerFrameCount = 0 EventLog = [1x0 struct] FrameGrabInterval = 1 FramesAcquired = 0 FramesAvailable = 0 FramesPerTrigger = 10 Logging = off LoggingMode = memory
Video input object
Video Source object Video Source object Video Source object …. Currently selected source
Hình 3.3. Các kiểu của đối tượng thu nhận ảnh
Name = YUY2_640x480-winvideo-1 NumberOfBands = 3 Previewing = off ReturnedColorSpace = YCbCr ROIPosition = [0 0 640 480] Running = off Tag = Timeout = 10 Type = videoinput UserData = [] VideoFormat = YUY2_640x480 VideoResolution = [640 480] Callback Function Settings: ErrorFcn = @imaqcallback FramesAcquiredFcn = [] FramesAcquiredFcnCount = 0 StartFcn = [] StopFcn = [] TimerFcn = [] TimerPeriod = 1 TriggerFcn = [] Trigger Settings: InitialTriggerTime = [] TriggerCondition = none TriggerFrameDelay = 0 TriggerRepeat = 0 TriggersExecuted = 0 TriggerSource = none TriggerType = immediate Acquisition Sources: SelectedSourceName = composite Source = [1x3 videosource]
Ta thấy rằng là một đối tượng lối vào video có rất nhiều thuộc tính. Nắm bắt được các thuộc tính ta có thể điều khiển được quá trình thu nhận ảnh.
Để xem các thuộc tính của đối tượng nguồn video được lựa chọn hiện tại để kết hợp với đối tượng lối vào video ta sử dụng hàm getselectedsource kết hợp với hàm get.
Nguyễn Văn Thắng – Luận văn thạc sĩ tổng quan về xử lý ảnh
get(getselectedsource(vid))
Hàm get sẽ liệt kê toàn bộ các thuộc tính và các giá trị hiện thời của nó. Thiết lập các thuộc tính của đối tượng
Để thiết lập giá trị thuộc tính của một đối tượng ta có hai cách là dùng hàm set hoặc tham chiếu đến đên thuộc tính của đối tượng như một trường trong dữ liệu cấu trúc sử dụng kí hiệu dấu chấm.
Ví dụ: Ta đặt thuộc tính cho thiết bị thu nhận ảnh nhận 30 khung ảnh(frames) trong một lần bấm
Dùng hàm set
>> set(vidobj,'FramesPerTrigger',30) Hoặc
>>vidobj.FramesPerTrigger=30
Một vài thuộc tính của đối tượng chỉ cho phép đọc(read only), ta không thể thay đổi giá trị của nó. Các thuộc tính này thường cung cấp các thông tin trạng thái của đối tượng, một vài đối tượng khác trở thành chỉ đọc khi đối tượng đang chạy
Bước 6: Thu nhận dữ liệu ảnh
Sau khi hoàn tất các bước tạo đối tượng và thiết lập các thuộc tính, ta có thể thu nhận dữ liệu ảnh đây là các bước thông thường trong các chương trình ứng dụng thu nhận ảnh. Việc thu nhận ảnh bao gồm các bước sau:
+ Khởi động đối tượng: Việc khởi động đối tượng bằng cách gọi hàm start với cú pháp
start(vidobj)
Sau khi đối tượng đã được khởi động các thuộc tính của đối tượng sẽ trở nên chỉ đọc, và đối tượng sẽ tự động dừng lại khi thu nhận đủ số khung yêu cầu, hoặc gọi hàm stop(vidobj).
Thu nhận dữ liệu: Để thu nhận dữ liệu đối tượng lối vào video phải thực hiện một trigger. Các trigger có thể xuất hiện theo nhiều cách phụ thuộc vào giá trị thiết lập của thuộc tính TriggerType. Thuộc tính này có thể nhận một trong ba giá trị là immediate (giá trị mặc định), manual, và hardware. Nếu thuộc tính TriggerType có giá trị là immediate thì ngay khi khởi động đối tượng dữ liệu sẽ được thu nhận.