- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 OpenCVSharp(在 Visual Studio 2015 中运行并通过 NuGet 安装的 OpenCvSharp3-AnyCPU 版本 3.0.0.20150823)从 C# 访问 OpenCV,但是在调用 Cv2.PCACompute
时我得到一个通用的 < em>OpenCVException 声明我有一个不支持的输入和输出数组格式组合。
我的目标是使用 PCA 找到像素 block 的主轴。这是我目前的(精简的)代码:
using OpenCvSharp;
public struct point2D
{
public int X;
public int Y;
public point2D(int X, int Y)
{
this.X = X;
this.Y = Y;
}
}
public static void PCA2D()
{
int height = 5;
int width = 5;
int[] image = new int[]
{
0,0,0,0,1,
0,0,0,1,0,
0,0,1,0,0,
0,1,0,0,0,
1,0,0,0,0,
}
// extract the datapoints
List<point2D> dataPoints = new List<point2D>();
for (int row = 0; row < height; ++row)
{
for (int col = 0; col < width; ++col)
{
if (image[row * width + col] == 1)
{
dataPoints.Add(new point2D(col, row));
}
}
}
// create the input matrix
Mat input = new Mat(dataPoints.Length, 2, MatType.CV_32SC1);
for (int i = 0; i < dataPoints.Length; ++i)
{
input.Set(i, 0, dataPoints[i].X);
input.Set(i, 1, dataPoints[i].Y);
}
Mat mean = new Mat();
Mat eigenvectors = new Mat();
// OpenCVException occurs here: unsupported combination of input and output array formats
Cv2.PCACompute(input, mean, eigenvectors);
// Code to get orientation from the eigenvectors
}
我无法找到任何关于如何初始化均值和特征向量垫的文档,或者我调用 PCACompute 的方式是否正确。深入了解使用 PCACompute 的正确过程将非常有帮助。
最佳答案
所以事实证明dataPoints
不能是MatType.CV_32SC1
。将代码更改为以下允许它工作:
// create the input matrix
Mat input = new Mat(dataPoints.Length, 2, MatType.CV_32FC1);
for (int i = 0; i < dataPoints.Length; ++i)
{
input.Set(i, 0, (float)dataPoints[i].X);
input.Set(i, 1, (float)dataPoints[i].Y);
}
关于c# - OpenCvSharp PCA 异常 : Unsupported combination of input and output array formats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070708/
我正在一个项目中,该项目需要使用RTSP或RTMP流式传输到wowza流式传输服务器。我知道如何捕捉视频。我尝试使用CvVideoWrier。但这并没有真正起作用。 CvCapture cap = C
我在将 Zxing 库与 openCvSharp 集成时遇到问题。我正在尝试使用相机实时读取条形码。 它在 Result result = barcodeReader.Decode(test); 行抛
我正在使用 OpenCvSharp4 4.1.0.20190416 和深度神经网络函数。 ... mDnn.SetInput(blob, "data");
有谁知道转换代码 LbgrtoLab 中的“L”是什么意思?我在网上搜索并找不到关于此转换代码的任何描述,目前我尝试同时使用 BgrtoLab/LbgrtoLab,我发现使用相同图像源的 A 和 B
我正在尝试实现一个在二进制图像中找到轮廓并过滤掉小轮廓的函数。 这是我的代码和示例图像。这是一个 super 简单的功能,可以去除小面积的 Blob 。但我不断得到“边缘轮廓”而不是区域轮廓。 :S
BitmapConverter.cs包括功能 public static unsafe void ToBitmap(this Mat src, Bitmap dst) 稍后(在第 403 行)我们有这
我试图识别图像中的文本。 实际上,我正在尝试识别图像中的文本位置,然后将其转换为文本。 我发现了一些用 C++ 编写的代码,我正在尝试将其转换为 C#。你能帮帮我吗? Extracting text
我最近将我的项目库从 Emgu CV 转移到了 OpenCVSharp。在 Emgu CV 中翻转图像(使用 pictureBox)的代码是: Image f = _capture.QueryFram
不幸的是,我正在为此苦苦挣扎。我有一个混合了 Emgu 和 OpenCvSharp 的项目。听起来很奇怪,但有其原因。 无论如何,我有一个 EMGU.CV.Image,我想用它来填充 OpenCvSh
有一条直线从Point(x1, y1) 到Point(x2, y2)。我想得到那条线上的所有点。 我知道,OpenCv 有 LineIterator。但是我找不到如何在 C# 上使用它? 有 C++
我正在尝试在 OpenCvSharp 中使用霍夫变换,但我对此有很多疑问。有人可以在这里解释或给我一个示例代码吗?我是编程的新手。请记住它是 OpenCvSharp,所以请尝试提供相应的帮助。提前谢谢
我正在尝试使用 Cv2.FindHomography 方法查找两个源的单应矩阵。到这里为止一切正常。问题是我无法获取/打印矩阵值。我真的是 C# 的初级水平。我找到了一种 documentation属
多次尝试正确编译,但显然我做错了什么。 我有 OpenCV 和 OpenCVSharp 的最新 SVN check out 。我使用 CMake 构建我的 OpenCV 解决方案(使用 x64 Vis
我在 Visual Studio 2013 中使用 OpenCvSharp。我已经通过 Nuget 安装了它,它工作正常。 但是当我部署应用程序时,它有一个 128M 的 DLL 目录。 x86 为
我的代码非常简单——我对图像进行阈值处理,然后尝试对其应用 DistanceTransform: var source = new Mat(path, ImreadModes.AnyDepth | I
我正在使用 OpenCVSharp 运行一些校准测试,但我似乎无法让 FindCirclesGrid 工作,我在调用 FindCirclesGrid 时遇到了一个非常意外的 AccessViolati
我正在尝试在 Visual Studio 2012 中使用 opencvsharp v2.4 64x 构建一个项目。该项目是使用 .net 4.5 和 x64 目标构建的。我已经安装了 VS08+VS
嗨,我正在使用 Visual Studio 2008 和 C++ 来实现分水岭算法,它运行良好。但我最近正在使用 Visual Studio 2010 中的 opencvsharp 包装类将相同的代码
我已经在我的项目中使用 NuGet 管理器安装了最新的 OpenCVSharp 2 (2.4.10.201...)。与 OpenCVSharp.CvMat 相关的一切工作正常(加载、操作等)所以我确信
我已经在我的 XAML 代码后面编写了下面的代码,以在名为 查看。 Mat mat = new Mat(); VideoCapture videoCapture = new VideoCapture(
我是一名优秀的程序员,十分优秀!