AKADEMIA GÓRNICZO – HUTNICZA
im. Stanisława Staszica w Krakowie
Systemy Wizyjne
Sprawozdanie z laboratorium nr 1 MatLab
Damian Bubak
grupa 23, rok III, Mechatronika (IMiR)
Data wykonania ćw: 10.03.14r.
Godzina 10:30
Wszystkie obrazy zostały pozyskane za pomocą kamery internetowej wbudowanej w laptopie.
Pierwszym krokiem było pozyskanie informacji o sprzęcie. Wykorzystując poniższe polecenia
otrzymano potrzebne informacje.
info = imaqhwinfo
Wyświetla zainstalowane w sytemie adaptery:
InstalledAdaptors: {'gentl' 'gige' 'matrox' 'winvideo'}
MATLABVersion: '8.1 (R2013a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.5 (R2013a)'
info = imaqhwinfo(
'winvideo'
)
Wyświetla informacje o wszystkich urządzeniach dostępnych przez dany adapter:
AdaptorDllName: [1x81 char]
AdaptorDllVersion: '4.5 (R2013a)'
AdaptorName: 'winvideo'
DeviceIDs: {[1] [2]}
DeviceInfo: [1x2 struct]
dev_info = imaqhwinfo(
'winvideo'
,1)
Wyświetla informacje o konkretnym urządzeniu (określonym przez drugi argument funkcji
imaqhwinfo czyli deviceID) w moim przypadku mamy 2 możliwości:
DefaultFormat: 'RGB24_320x240'
DeviceFileSupported: 0
DeviceName: 'CyberLink Webcam Splitter'
DeviceID: 1
VideoInputConstructor: 'videoinput('winvideo', 1)'
VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 1)'
SupportedFormats: {1x12 cell}
dev_info = imaqhwinfo(
'winvideo'
,2)
DefaultFormat: 'MJPG_1280x720'
DeviceFileSupported: 0
DeviceName: 'HP TrueVision HD'
DeviceID: 2
VideoInputConstructor: 'videoinput('winvideo', 2)'
VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 2)'
SupportedFormats: {1x10 cell}
dev_info.SupportedFormats
Wspierane formaty:
Columns 1 through 4
'RGB24_1280x960' 'RGB24_1600x1200' 'RGB24_160x120' 'RGB24_320x240'
Columns 5 through 8
'RGB24_640x480' 'RGB24_800x600' 'YUY2_1280x960' 'YUY2_1600x1200'
Columns 9 through 12
'YUY2_160x120' 'YUY2_320x240' 'YUY2_640x480' 'YUY2_800x600'
1.
Dostępne parametry dla obiektu akwizycji:
Do wyświetlenia aktualnie ustawionych parametrów można posłużyć się funkcją:
get(vidobj)
W wyniku wywołania tej funkcji otrzymano następujący zestaw parametrów:
General Settings:
DeviceID = 1
DiskLogger = []
DiskLoggerFrameCount = 0
EventLog = [1x3 struct]
FrameGrabInterval = 1
FramesAcquired = 10
FramesAvailable = 0
FramesPerTrigger = 10
Logging = off
LoggingMode = memory
Name = RGB24_1600x1200-winvideo-1
NumberOfBands = 3
Previewing = off
ROIPosition = [0 0 1600 1200]
Running = off
Tag =
Timeout = 10
Type = videoinput
UserData = []
VideoFormat = RGB24_1600x1200
VideoResolution = [1600 1200]
Color Space Settings:
BayerSensorAlignment = grbg
ReturnedColorSpace = rgb
Trigger Settings:
InitialTriggerTime = [2014 3 15 12 29 17.9519]
TriggerCondition = none
TriggerFrameDelay = 0
TriggerRepeat = 0
TriggersExecuted = 1
TriggerSource = none
TriggerType = immediate
Acquisition Sources:
SelectedSourceName = input1
Source = [1x1 videosource]
Poniżej przedstawiono krótki opis ważniejszych parametrów:
DeviceID - Nr identyfikujący urządzenie.
FramesAvailable - Liczba buforowanych klatek dostępnych na źródło.
FramesAcquired - Całkowita liczba uzyskiwanych klatek.
FramesPerTrigger - Liczba klatek uzyskiwanych na każde wyzwolenie.
Logging - Wskazuje czy dane są rejestrowane czy nie.
LoggingMode - Określa miejsce przeznaczenia dla uzyskanych danych obrazu (np.
pamięć)
Name - Opisowa nazwa wejściowego obiektu akwizycji.
ROIPosition - Określa region okna akwizycji.
Running - Wskazuje czy wejściowy objekt wideo jest w stanie akwizycji.
SelectedSourceName - Bieżąco wybrane źródło wideo do użycia podczas akwizycji.
Source - Obiekt źródła wideo zawarty przez obiekt videoinput
Tag - Etykieta do obiektu.
Timeout - Czas oczekiwania na wyodrębnienie danych obrazu.
TimerPeriod - Przedział czasu pomiędzy wydarzeniami timera.
TriggerCondition - Stan w którym trigger jest uruchamiany.
TriggerFrameDelay - Wartość opóźnienia dla rejestrowania klatek obrazu.
TriggerRepeat - Liczba dodatkowych powtórzeń wyzwalania.
TriggersExecuted - Liczba razy wykonywania wyzwalania.
TriggerType - Typ triggera (np. immediate, manual).
Type - Typ obiektu.
UserData - Dane użytkownika dla obiektu.
VideoFormat - Format wideo z urządzenia.
VideoResolution - Wektor wskazujący szerokość i wysokość obrazu przychodzącego z
sygnału wideo.
2.
Parametr ‘ReturnedColorSpace’
Parametr ten pozwala wyświetlić obraz w wybranej przestrzeni kolorów. Mamy dostepne tutaj 4
wartości: ‘rgb’,’grayscale’,’YCbCr’,’bayer’
•
RGB – obraz kolorowy red, green, blue
•
Grayscale – obraz w skali szarości
•
YCbCr – przestrzeń wykorzystująca 3 składowe: iluminacji, różnicową chrominacji (Y-
B), chrominacji (Y-R)
•
Bayer – konwersja ze skali szarości do RGB (tylko gdy domyślne dla kamery jest
grayscale)
Przykładowe screeny z ustawieniami kolejno ‘rgb’, ‘grayscale’,’YCbCr’:
3.
Sposoby wyzwalania kamery
Funcja triggerconfig ustala sposób wyzwalania wideo.
Rodzaje:
•
Hardware (trigger jest uruchamiany po spełnieniu warunku)
•
Immediate (trigger jest uruchamiany po wywołaniu funkcji start)
•
manual (trigger jest uruchamiany po wywołaniu funkcji trigger)
FramesPerTrigger - określa liczbę klatek jaką należy przechwycić
TriggerRepeat - włączenie triggera po spełnieniu warunku określoną ilość razy Gdy
TriggerRepeat jest ustawiony na Inf następuje akwizycja ciągła.
4.
Metody przetwarzania pozyskiwanych obrazów:
Róznica bezwzględna obrazów -
imabsdiff(data(:,:,:,1),data(:,:,:,2))
Liniowa kombinacja obrazów -
imlincomb(1,data(:,:,:,1),-1, data(:,:,:,2),120 )
Poniżej zamieszczam screeny z testów obydwu funkcji:
imlincomb
imabsdiff
5.
Wykorzystywane formaty video:
Tak jak napisano wyżej wykorzystywane formaty to:
Columns 1 through 4
'RGB24_1280x960' 'RGB24_1600x1200' 'RGB24_160x120' 'RGB24_320x240'
Columns 5 through 8
'RGB24_640x480' 'RGB24_800x600' 'YUY2_1280x960' 'YUY2_1600x1200'
Columns 9 through 12
'YUY2_160x120' 'YUY2_320x240' 'YUY2_640x480' 'YUY2_800x600'
RGB24 - 3 kolory czerwony, zielony, niebieski zapisane w formacie 24 – bitowym.
YUY2 - format w którym kazde 2 piksele są definiowane w makropiksel. Format ten zachowuje
pełne informacje o jasności punktów obrazu, jednak informacja o kolorze jest współdzielona
przez dwa sąsiednie punkty na obrazie wideo.