在OpenCVSharp里通过Cv2.CornerEigenValsAndVecs做角点检测,然后把输出结果放到picturebox的代码
时间: 2024-03-04 21:49:19 浏览: 32
可以参考以下代码实现:
```csharp
using OpenCvSharp;
// 假设已经从图像文件中读取了图像数据,存储在Mat对象image中
// 假设已经创建了一个名为pictureBox的PictureBox控件
// 调用CornerEigenValsAndVecs函数进行角点检测
Mat cornerMat = new Mat();
Cv2.CornerEigenValsAndVecs(image, cornerMat, 3, 3);
// 将检测结果绘制到图像上
Mat outputMat = image.Clone();
for (int i = 0; i < image.Rows; i++)
{
for (int j = 0; j < image.Cols; j++)
{
if (cornerMat.At<Vec6f>(i, j)[0] > 100000) // 这里的100000是根据实际情况调整的阈值
{
Cv2.Circle(outputMat, j, i, 5, Scalar.Red, 2);
}
}
}
// 将Mat对象转换为Bitmap对象,并显示在PictureBox控件上
Bitmap bitmap = BitmapConverter.ToBitmap(outputMat);
pictureBox.Image = bitmap;
```
这段代码会在PictureBox控件上显示角点检测的结果。注意,这里的阈值需要根据实际情况进行调整,以达到最佳的检测效果。