2using System.Collections.Generic;
5using System.Threading.Tasks;
36 SbRes res_slice =
null;
37 SbRes res_hole =
null;
41 Console.WriteLine(
"Sb Init");
42 err =
Sb.
Init(
"../../../sb.lic");
45 Console.WriteLine(
"Sb.Init failed with error " + err);
50 Console.WriteLine(
"Wait for license...");
51 err = Common.WaitLicense();
54 Console.WriteLine(
"SbLicense.WaitLicense failed with error " + err);
62 if (solutionInfo ==
null || solutionInfo.
Error() !=
SbError.SB_ERR_NONE)
64 err = solutionInfo ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : solutionInfo.
Error();
65 Console.WriteLine(
"SbSolution.GetInfo failed");
68 else if (solutionInfo.
projects.Length == 0)
70 err =
SbError.SB_ERR_PROJECT_NOT_FOUND;
71 Console.WriteLine(
"SbSolution.GetInfo no projects found");
74 Console.WriteLine(
"SbSolutionInfo.GetInfo, found " + solutionInfo.
projects.Length +
" projects");
78 if (slice ==
null || slice.
Error() !=
SbError.SB_ERR_NONE)
80 err = slice ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : slice.
Error();
81 Console.WriteLine(
"SbProject.Load failed with error " + err);
89 err = hole ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : hole.
Error();
90 Console.WriteLine(
"SbProject.Load failed with error " + err);
97 for (
int i = 0; i < folder.
files.Length; i++)
103 Console.WriteLine(
"SbImage.Load " + folder.
files[i] +
" failed");
104 err = img ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : img.
Error();
112 Console.WriteLine(
"SbRoi.Create failed");
113 err = roi ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : roi.
Error();
119 if (err !=
SbError.SB_ERR_NONE)
121 Console.WriteLine(
"SbRoi.SetRect failed with error " + err);
127 if (err !=
SbError.SB_ERR_NONE)
129 Console.WriteLine(
"SbProject.Detection failed with error " + err);
134 res_slice = slice.
GetRes(
false);
135 if (res_slice ==
null || slice.
Error() !=
SbError.SB_ERR_NONE)
137 err = res_slice ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : slice.
Error();
138 Console.WriteLine(
"SbProject.GetRes failed with error " + err);
142 Console.WriteLine(
" slice detection time=" + (res_slice.
timeUs / 1000.0f) +
"ms, " + res_slice.
samples.Length +
" slices found");
144 for (
int j = 0; j < res_slice.
samples.Length; ++j)
148 if (err !=
SbError.SB_ERR_NONE)
150 Console.WriteLine(
"SbRoi.SetRect failed with error " + err);
156 if (err !=
SbError.SB_ERR_NONE)
158 Console.WriteLine(
"SbProject.Detection failed with error " + err);
163 res_hole = hole.
GetRes(
false);
164 if (res_hole ==
null || hole.
Error() !=
SbError.SB_ERR_NONE)
166 err = res_hole ==
null ?
SbError.SB_ERR_INSUFFICIENT_FREE_MEMORY : hole.
Error();
167 Console.WriteLine(
"SbProject.GetRes failed with error " + err);
170 Console.WriteLine(
" slice " + j +
": hole detection time=" + (res_hole.
timeUs / 1000.0f) +
", " + res_hole.
samples.Length +
" holes found");
172 for (
int k = 0; k < res_hole.
samples.Length; ++k)
173 Console.WriteLine(
" centre=(" + res_hole.
samples[k].centre.x +
"," + res_hole.
samples[k].centre.y +
") weight=" + res_hole.
samples[k].weight);
175 if (res_hole !=
null)
191 if (res_slice !=
null)
210 if (res_slice !=
null)
212 if (res_hole !=
null)
215 Console.WriteLine(
"Release SqueezeBrains library");
218 Console.WriteLine(
"Press ENTER to terminate");
224 static void Main(
string[] args)
Tutorial 7 - Retina - How to use more than one project to detect objects.
SbError Error()
Returns the error code of the last operation. If no error SbError.SB_ERR_NONE is returned.
static const String SbSolutionExt
Solution file extension
Folder Class that wraps the sb_t_folder structure
static SbFolder Load(String^ path, String ^ext, bool sort, int verbosity)
Creates the list of the name of the files in a specified folder.
array< String^> files
Array of files.
static SbError Release()
Releases all the resources allocated in the library
static SbError Init(String ^ license_file)
Init the SB Library. The function initializes all the functionalities of the library including the li...
SbImage class that wraps the sb_t_image structure. You must call the Dispose() method to free all the...
int Height()
Height, in pixel, of the image.
static SbImage Load(String^ filename)
Loads an image from file.
int Width()
Width, in pixel, of the image.
Project Class You must call the Dispose() method to free all the resources of the returned instance.
static SbProject Load(String^ solution_file, String^ project_uuid, SbProjectMode mode)
Loads an existing project from file.
SbRes GetRes(bool details)
Retrieves the results of the last processed image
SbError Detection(SbImage ^img, SbRoi ^roi)
The function elaborates the image inside the ROI. For Surface projects the function computes also the...
Rectangle class that wraps the sb_t_rect structure
Class of the results of the image elaboration with the SbProject::Detection method....
long long timeUs
Detection time
array< SbSample^> samples
Samples results. Only Retina projects
ROI Class that wraps the sb_t_roi structure. You must call the Dispose() method to free all the resou...
static SbRoi Create(int width, int height)
Creates a ROI.
SbError SetRect(int gl, SbRect^ rect, bool reset_roi)
Sets a rectangular ROI.
static SbSolutionInfo GetInfo(String^ solution_file)
Returns the information contained in the solution_file.
Solution Info Class that wraps the sb_t_solution_info structure
array< SbProjectInfo^> projects
Array of the projects information of the solution. sb_t_solution_info.projects
SbProjectMode
Project loading or saving mode that wraps the sb_t_project_mode enum