Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从图像中的对象获得标准化坐标_C#_Machine Learning_Artificial Intelligence_Object Recognition_Microsoft Custom Vision - Fatal编程技术网

C# 如何从图像中的对象获得标准化坐标

C# 如何从图像中的对象获得标准化坐标,c#,machine-learning,artificial-intelligence,object-recognition,microsoft-custom-vision,C#,Machine Learning,Artificial Intelligence,Object Recognition,Microsoft Custom Vision,我正在使用Microsoft的CustomVision.ai构建一个自定义vision应用程序 我正在使用本教程: 在某一点上,我需要: 在对象检测项目中标记图像时,需要使用规范化坐标指定每个标记对象的区域 为此,我需要编写以下代码: Dictionary<string, double[]> fileToRegionMap = new Dictionary<string, double[]>() { // FileName, Left, Top, Width, Heig

我正在使用Microsoft的CustomVision.ai构建一个自定义vision应用程序

我正在使用本教程:

在某一点上,我需要:

在对象检测项目中标记图像时,需要使用规范化坐标指定每个标记对象的区域

为此,我需要编写以下代码:

Dictionary<string, double[]> fileToRegionMap = new Dictionary<string, double[]>() {
// FileName, Left, Top, Width, Height
{"scissors_1", new double[] { 0.4007353, 0.194068655, 0.259803921, 0.6617647 } },
{"scissors_2", new double[] { 0.426470578, 0.185898721, 0.172794119, 0.5539216 } },
{"scissors_3", new double[] { 0.289215684, 0.259428144, 0.403186262, 0.421568632 } }
...
Dictionary fileToRegionMap=newdictionary(){
//文件名、左、上、宽、高
{“剪刀1”,新双[]0.4007353,0.194068655,0.259803921,0.6617647},
{“剪刀2”,新双[]0.426470578,0.185898721,0.172794119,0.5539216},
{“剪刀3”,新双[]0.289215684,0.259428144,0.403186262,0.421568632}
...
其中double是对象在图像中的标准化坐标


如何从图像中获取这些坐标?是否有一个软件可用于创建这些坐标并将其添加到代码中?

标准化坐标是范围从0.0到1.0(不包括)的坐标

如果您有一个坐标在范围内的图像

(X = 0..Width, Y = 0..Height)
将坐标变换为

double x_normalized = X / Width;
double y_normalized = Y / Height;
这假设坐标
X
Y
宽度
高度
double
float
。如果它们为
int
,则使用

double x_normalized = (double)X / Width;
double y_normalized = (double)Y / Height;
这同样适用于图像内对象的宽度或高度

double object_width_normalized = object_width / Width;
double object_height_normalized = object_height / Height;

注意,如果坐标表示为
int
,通常它们在
[0..Width-1,0..Height-1
范围内,因此除法产生一个值
0.0,标准化坐标是范围为0.0到1.0(不包括)的坐标

如果您有一个坐标在范围内的图像

(X = 0..Width, Y = 0..Height)
将坐标变换为

double x_normalized = X / Width;
double y_normalized = Y / Height;
这假设坐标
X
Y
宽度
高度
double
float
。如果它们为
int
,则使用

double x_normalized = (double)X / Width;
double y_normalized = (double)Y / Height;
这同样适用于图像内对象的宽度或高度

double object_width_normalized = object_width / Width;
double object_height_normalized = object_height / Height;

注意,如果坐标表示为
int
,则它们通常在
[0..Width-1,0..Height-1
,这样除法会产生一个值
0.0看看本教程:看看本教程:我将尝试构建一个控制台应用程序,并将转换作为测试。谢谢!我将尝试构建一个控制台应用程序,并将转换作为测试。谢谢!