opencvsharp从Mat中获取坐标值
时间: 2024-03-12 13:45:51 浏览: 164
在OpenCvSharp中,可以使用Mat类的At()方法或者Ptr()方法来获取指定坐标处的像素值。At()方法可以直接获取指定坐标处的像素值,而Ptr()方法则返回指向指定坐标处像素值的指针,可以通过指针来访问像素值。
以下是使用At()方法获取指定坐标处像素值的示例代码:
```
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
var img = Cv2.ImRead("test.png");
int x = 10, y = 20;
var pixel = img.At<Vec3b>(y, x);
}
}
```
这段代码中,我们首先使用Cv2.ImRead()方法读取了一张名为test.png的图片,然后定义了坐标(x, y),并使用At()方法获取该坐标处的像素值。由于图像是彩色图像,因此使用Vec3b类型表示像素值,Vec3b类型中的3表示像素值有三个通道,b表示通道的数据类型为byte。
以下是使用Ptr()方法获取指定坐标处像素值的示例代码:
```
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
var img = Cv2.ImRead("test.png");
int x = 10, y = 20;
var pixel = img.Ptr(y, x);
}
}
```
这段代码中,我们同样使用Cv2.ImRead()方法读取了一张名为test.png的图片,然后定义了坐标(x, y),并使用Ptr()方法获取该坐标处的像素值指针。需要注意的是,Ptr()方法中的数据类型应该与图像的类型相匹配。
阅读全文