Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkVideoInputSource.cpp
Go to the documentation of this file.
1
/*============================================================================
2
3
The Medical Imaging Interaction Toolkit (MITK)
4
5
Copyright (c) German Cancer Research Center (DKFZ)
6
All rights reserved.
7
8
Use of this source code is governed by a 3-clause BSD license that can be
9
found in the LICENSE file.
10
11
============================================================================*/
12
13
#include "
mitkVideoInputSource.h
"
14
15
#include <iostream>
16
#include <algorithm>
17
#include <videoInput.h>
18
19
mitk::VideoInputSource::VideoInputSource
()
20
: m_ShowSettingsWindow(false)
21
{
22
23
24
m_CaptureWidth
= 1024;
25
m_CaptureHeight
= 720;
26
m_CapturingInProcess
=
false
;
27
28
m_DeviceNumber
= -1;
29
m_CaptureSize
= 0;
30
31
m_CurrentVideoTexture
=
nullptr
;
32
m_CurrentImage
=
nullptr
;
33
m_VideoInput
=
new
videoInput;
34
35
36
m_UndistortImage
=
false
;
37
}
38
39
mitk::VideoInputSource::~VideoInputSource
()
40
{
41
m_VideoInput
->stopDevice(
m_DeviceNumber
);
42
m_CapturingInProcess
=
false
;
43
delete
m_VideoInput
;
44
}
45
46
void
mitk::VideoInputSource::FetchFrame
()
47
{
// main procedure for updating video data
48
49
// if(m_CurrentVideoTexture == nullptr)
50
// m_CurrentVideoTexture = new unsigned char[m_CaptureSize];
51
52
if
(
m_CapturingInProcess
&& !
m_CapturePaused
)
53
{
54
if
(
m_CurrentImage
==
nullptr
)
55
m_CurrentImage
= cvCreateImage(cvSize(
m_CaptureWidth
,
m_CaptureHeight
),IPL_DEPTH_8U,3);
56
57
if
(
m_VideoInput
->isFrameNew(
m_DeviceNumber
))
58
{
59
//m_VideoInput->getPixels(m_DeviceNumber, m_CurrentVideoTexture, true, false);
60
m_VideoInput
->getPixels(
m_DeviceNumber
, reinterpret_cast<unsigned char*>(
m_CurrentImage
->imageData),
false
,
true
);
61
// only undistort if not paused
62
if
(
m_UndistortImage
&&
m_UndistortCameraImage
.IsNotNull())
63
m_UndistortCameraImage
->UndistortImageFast(
m_CurrentImage
, 0);
64
}
65
}
66
}
67
68
void
mitk::VideoInputSource::StartCapturing
()
69
{
70
//Prints out a list of available devices and returns num of devices found
71
int
numDevices =
m_VideoInput
->listDevices();
72
73
try
74
{
75
m_VideoInput
->setupDevice(
m_DeviceNumber
,
m_CaptureWidth
,
m_CaptureHeight
, VI_COMPOSITE);
76
}
77
catch
(...)
78
{
79
MITK_WARN
<<
"error setting up device"
;
80
}
81
82
//to get a settings dialog for the device
83
if
(
m_ShowSettingsWindow
)
84
m_VideoInput
->showSettingsWindow(
m_DeviceNumber
);
85
86
//As requested width and height can not always be accomodated
87
//make sure to check the size once the device is setup
88
89
m_CaptureWidth
=
m_VideoInput
->getWidth(
m_DeviceNumber
);
90
m_CaptureHeight
=
m_VideoInput
->getHeight(
m_DeviceNumber
);
91
m_CaptureSize
=
m_VideoInput
->getSize(
m_DeviceNumber
);
92
93
MITK_INFO
<<
"starting capturing with VideoInputLib. Size: "
<<
m_CaptureWidth
<<
" x "
<<
m_CaptureHeight
;
94
m_CapturingInProcess
=
true
;
95
96
}
97
98
void
mitk::VideoInputSource::StopCapturing
()
99
{
100
MITK_INFO
<<
"stopping cpaturing process"
;
101
m_VideoInput
->stopDevice(
m_DeviceNumber
);
102
m_CapturingInProcess
=
false
;
103
104
}
105
106
void
mitk::VideoInputSource::SetVideoCameraInput
(
int
cameraindex,
bool
useCVCAMLib)
107
{
108
m_DeviceNumber
= cameraindex;
109
}
110
void
mitk::VideoInputSource::SetVideoFileInput
(
const
char
* filename,
bool
repeatVideo,
bool
useCVCAMLib)
111
{
112
}
113
mitk::VideoInputSource::m_CaptureSize
int m_CaptureSize
Definition:
mitkVideoInputSource.h:59
mitkVideoInputSource.h
mitk::VideoInputSource::FetchFrame
void FetchFrame()
Definition:
mitkVideoInputSource.cpp:46
MITK_INFO
#define MITK_INFO
Definition:
mitkLogMacros.h:18
mitk::VideoSource::m_CaptureWidth
int m_CaptureWidth
Definition:
mitkVideoSource.h:106
mitk::OpenCVVideoSource::m_UndistortCameraImage
mitk::UndistortCameraImage::Pointer m_UndistortCameraImage
Definition:
mitkOpenCVVideoSource.h:182
mitk::VideoInputSource::m_VideoInput
videoInput * m_VideoInput
Definition:
mitkVideoInputSource.h:57
mitk::VideoSource::m_CaptureHeight
int m_CaptureHeight
Definition:
mitkVideoSource.h:112
mitk::VideoInputSource::~VideoInputSource
virtual ~VideoInputSource()
Definition:
mitkVideoInputSource.cpp:39
mitk::VideoInputSource::m_CurrentVideoTexture
unsigned char * m_CurrentVideoTexture
Definition:
mitkVideoInputSource.h:62
mitk::OpenCVVideoSource::m_CurrentImage
IplImage * m_CurrentImage
Definition:
mitkOpenCVVideoSource.h:161
MITK_WARN
#define MITK_WARN
Definition:
mitkLogMacros.h:19
mitk::OpenCVVideoSource::m_UndistortImage
bool m_UndistortImage
Definition:
mitkOpenCVVideoSource.h:181
mitk::VideoInputSource::SetVideoCameraInput
void SetVideoCameraInput(int cameraindex, bool useCVCAMLib)
Definition:
mitkVideoInputSource.cpp:106
mitk::VideoSource::m_CapturePaused
bool m_CapturePaused
Definition:
mitkVideoSource.h:133
mitk::VideoInputSource::StopCapturing
void StopCapturing()
Definition:
mitkVideoInputSource.cpp:98
mitk::VideoInputSource::StartCapturing
void StartCapturing()
Definition:
mitkVideoInputSource.cpp:68
mitk::VideoInputSource::m_DeviceNumber
int m_DeviceNumber
Definition:
mitkVideoInputSource.h:58
mitk::VideoInputSource::VideoInputSource
VideoInputSource()
Definition:
mitkVideoInputSource.cpp:19
mitk::VideoInputSource::m_ShowSettingsWindow
bool m_ShowSettingsWindow
Definition:
mitkVideoInputSource.h:67
mitk::VideoInputSource::SetVideoFileInput
void SetVideoFileInput(const char *filename, bool repeatVideo, bool useCVCAMLib)
Definition:
mitkVideoInputSource.cpp:110
mitk::VideoSource::m_CapturingInProcess
bool m_CapturingInProcess
Definition:
mitkVideoSource.h:118
Source
Modules
OpenCVVideoSupport
mitkVideoInputSource.cpp
Generated on Thu Mar 12 2020 10:24:08 for Medical Imaging Interaction Toolkit by
1.8.13