48 std::cout <<
"............................." << std::endl;
49 std::cout <<
"Model: " << cameraInfo.
model << std::endl;
51 const auto consoleCP = GetConsoleOutputCP();
52 SetConsoleOutputCP(CP_UTF8);
54 std::cout <<
"Device name: " << cameraInfo.
deviceName << std::endl;
56 SetConsoleOutputCP(consoleCP);
58 std::cout <<
"Serial number: " << cameraInfo.
serialNumber << std::endl;
59 std::cout <<
"IP address: " << cameraInfo.
ipAddress << std::endl;
60 std::cout <<
"Subnet mask: " << cameraInfo.
subnetMask << std::endl;
61 std::cout <<
"IP address assignment method: "
63 std::cout <<
"Hardware version: "
65 std::cout <<
"Firmware version: "
67 std::cout <<
"............................." << std::endl;
68 std::cout << std::endl;
73 std::cout <<
".....Camera temperatures....." << std::endl;
77 std::cout <<
"............................" << std::endl;
79 std::cout << std::endl;
85 std::cout <<
".....Image resolutions....." << std::endl;
86 std::cout <<
"2D image (texture): " << cameraResolutions.
texture.
width <<
" (width) × "
87 << cameraResolutions.
texture.
height <<
" (height)" << std::endl;
88 std::cout <<
"Depth map: " << cameraResolutions.
depth.
width <<
" (width) × "
89 << cameraResolutions.
depth.
height <<
" (height)" << std::endl;
95 std::cout << title <<
": " << std::endl
96 <<
" [" << cameraMatrix.
fx <<
", " << 0 <<
", " << cameraMatrix.
cx <<
"]"
99 <<
" [" << 0 <<
", " << cameraMatrix.
fy <<
", " << cameraMatrix.
cy <<
"]"
102 <<
" [" << 0 <<
", " << 0 <<
", " << 1 <<
"]" << std::endl;
103 std::cout << std::endl;
109 std::cout << title <<
": " << std::endl
110 <<
" k1: " << distCoeffs.
k1 <<
", k2: " << distCoeffs.
k2
111 <<
", p1: " << distCoeffs.
p1 <<
", p2: " << distCoeffs.
p2 <<
", k3: " << distCoeffs.
k3
113 std::cout << std::endl;
118 std::cout <<
"Rotation: " << title <<
": " << std::endl;
119 for (
int i = 0; i < 3; i++) {
121 for (
int j = 0; j < 3; j++) {
122 std::cout << transform.
rotation[i][j];
126 std::cout <<
"]" << std::endl;
128 std::cout << std::endl;
129 std::cout <<
"Translation " << title <<
": " << std::endl;
131 <<
"mm, Z: " << transform.
translation[2] <<
"mm" << std::endl;
132 std::cout << std::endl;
145 printTransform(
"Transformation from depth 2D camera to texture 2D camera",
151 std::cout <<
"Looking for available cameras..." << std::endl;
154 if (deviceInfoList.empty()) {
155 std::cout <<
"No cameras are available." << std::endl;
159 for (
int i = 0; i < deviceInfoList.size(); i++) {
160 std::cout <<
"Mech-Eye device index: " << i << std::endl;
164 std::cout <<
"Enter the index of the device to which you want to connect: ";
165 unsigned inputIndex = 0;
170 if (std::regex_match(str.begin(), str.end(), std::regex{
"[0-9]+"}) &&
171 atoi(str.c_str()) < deviceInfoList.size()) {
172 inputIndex = atoi(str.c_str());
175 std::cout <<
"The entered index is invalid. Please enter the device index again: ";
179 status = device.
connect(deviceInfoList[inputIndex]);
181 if (!status.
isOK()) {
186 std::cout <<
"Successfully connected to the camera." << std::endl;
192 std::cout <<
"Looking for available cameras..." << std::endl;
195 if (cameraInfoList.empty()) {
196 std::cout <<
"No cameras are available." << std::endl;
200 for (
int i = 0; i < cameraInfoList.size(); i++) {
201 std::cout <<
"Mech-Eye device index: " << i << std::endl;
206 std::set<unsigned> indices;
209 std::cout <<
"Enter the indices of the devices to which you want to connect: " << std::endl;
210 std::cout <<
"Enter the character \"c\" at the end of all the indices" << std::endl;
215 if (std::regex_match(str.begin(), str.end(), std::regex{
"[0-9]+"}) &&
216 atoi(str.c_str()) < cameraInfoList.size())
217 indices.insert(atoi(str.c_str()));
219 std::cout <<
"The entered indices are invalid. Please enter the device indices again: ";
222 std::vector<mmind::eye::Camera> cameraList{};
224 auto iter = indices.cbegin();
225 for (
int i = 0; i < indices.size(); ++i, ++iter) {
227 auto status = camera.
connect(cameraInfoList[*iter]);
229 cameraList.push_back(camera);
240 <<
"Do you want the camera to capture 3D data? Enter \"y\" to confirm or \"n\" to cancel: "
243 std::string confirmStr;
244 std::cin >> confirmStr;
245 if (confirmStr ==
"y") {
247 }
else if (confirmStr ==
"n") {
248 std::cout <<
"The capture command was canceled." << std::endl;
251 std::cout <<
"The entered character was invalid. Please enter \"y\" to confirm or "
void showError(const mmind::api::ErrorStatus &status)
Definition SampleUtil.h:40
void printCameraMatrix(const std::string &title, const mmind::eye::CameraMatrix &cameraMatrix)
Definition api_util.h:92
bool findAndConnect(mmind::eye::Camera &device)
Definition api_util.h:149
std::vector< mmind::eye::Camera > findAndConnectMultiCamera()
Definition api_util.h:190
void printCameraInfo(const mmind::eye::CameraInfo &cameraInfo)
Definition api_util.h:46
bool confirmCapture3D()
Definition api_util.h:237
void printCameraStatus(const mmind::eye::CameraStatus &cameraStatus)
Definition api_util.h:71
void printCameraDistCoeffs(const std::string &title, const mmind::eye::CameraDistortion &distCoeffs)
Definition api_util.h:106
void printCameraIntrinsics(const mmind::eye::CameraIntrinsics &intrinsics)
Definition api_util.h:135
void printCameraResolutions(const mmind::eye::CameraResolutions &cameraResolutions)
Definition api_util.h:82
void printTransform(const std::string &title, const mmind::eye::Transformation &transform)
Definition api_util.h:116
Operates the camera. Use Camera::connect to connect an available camera, and then call the correspond...
Definition Camera.h:55
static std::vector< CameraInfo > discoverCameras(unsigned int timeoutMs=5000)
Discovers all available cameras and returns the list of information of all available cameras....
ErrorStatus connect(const CameraInfo &info, unsigned int timeoutMs=5000)
Connects to a camera using CameraInfo.
std::string toString() const
Converts a Version object to a string.
Definition Version.h:71
Describes the distortion parameters.
Definition CameraProperties.h:94
double k3
Radial distortion coefficients.
Definition CameraProperties.h:99
double k2
Radial distortion coefficients.
Definition CameraProperties.h:96
double k1
Radial distortion coefficients.
Definition CameraProperties.h:95
double p2
Tangential distortion coefficients.
Definition CameraProperties.h:98
double p1
Tangential distortion coefficients.
Definition CameraProperties.h:97
Defines the camera information.
Definition CameraProperties.h:49
IpAssignmentMethod ipAssignmentMethod
The IP address assignment method of the device.
Definition CameraProperties.h:58
std::string serialNumber
The serial number of the device.
Definition CameraProperties.h:52
std::string model
The device model, such as Mech-Eye NANO.
Definition CameraProperties.h:50
Version firmwareVersion
The version of the firmware (upgradable).
Definition CameraProperties.h:55
std::string subnetMask
The subnet mask of the device.
Definition CameraProperties.h:57
Version hardwareVersion
The version of the hardware (pre-determined in the factory).
Definition CameraProperties.h:54
std::string deviceName
The device name (UTF-8 encoded).
Definition CameraProperties.h:51
std::string ipAddress
The IP address of the device.
Definition CameraProperties.h:56
Defines the 3D camera intrinsic parameters, including the intrinsic parameters of the texture 2D came...
Definition CameraProperties.h:139
Transformation depthToTexture
Definition CameraProperties.h:145
Intrinsics2DCamera depth
The intrinsic parameters of the depth 2D camera(s) for capturing the depth map.
Definition CameraProperties.h:143
Intrinsics2DCamera texture
Definition CameraProperties.h:140
Describes the camera intrinsic parameter matrix.
Definition CameraProperties.h:83
double fy
Focal lengths.
Definition CameraProperties.h:85
double cy
Principal point.
Definition CameraProperties.h:87
double fx
Focal lengths.
Definition CameraProperties.h:84
double cx
Principal point.
Definition CameraProperties.h:86
Defines the camera image resolutions, including the resolutions of the 2D image (texture) and depth m...
Definition CameraProperties.h:128
Size depth
Definition CameraProperties.h:130
Size texture
Definition CameraProperties.h:129
Describes the camera's statuses.
Definition CameraProperties.h:75
DeviceTemperature temperature
Definition CameraProperties.h:76
float projectorTemperature
The temperature (in °C) of the camera projector.
Definition CameraProperties.h:68
float cpuTemperature
The temperature (in °C) of the camera CPU.
Definition CameraProperties.h:67
Describes the types of errors.
Definition ErrorStatus.h:12
bool isOK() const
Returns true if the operation succeeded.
Definition ErrorStatus.h:85
CameraDistortion cameraDistortion
Definition CameraProperties.h:108
CameraMatrix cameraMatrix
Definition CameraProperties.h:109
size_t height
Definition CommonTypes.h:46
size_t width
Definition CommonTypes.h:45