- 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/
我尝试用 PCA 构建一个定向边界框。在图片中您可以看到我的结果: 红点:点云 蓝色向量:PCA 分量 我尝试将点投影到向量上,以获得最小值、最大值和平均值。 但是我现在如何定义我的盒子呢?有什么想法
我们如何将 PCA 应用于一维数组? double[][] data = new double [1][600]; PCA pca = new PCA(data, 20); data = pca.ge
我知道PCA和ICA都用于降维,并且在PCA中主成分是正交的(不一定独立),但在ICA中它们是独立的。有人能澄清一下什么时候使用 ICA 而不是 PCA 更好吗? 最佳答案 ICA 不是一种降维技术。
我正在使用 scikit-learning 做一些降维任务。 我的训练/测试数据采用 libsvm 格式。它是一个有 50 万列的大型稀疏矩阵。 我使用 load_svmlight_file 函数加载
我一直在尝试使用 PCA 进行降维。我目前有一个大小为 (100, 100) 的图像,我正在使用一个由 140 个 Gabor 滤波器组成的滤波器组,其中每个滤波器都会给我一个响应,这又是一个 (10
我使用以下简单代码在具有 10 个特征的数据框上运行 PCA: pca = PCA() fit = pca.fit(dfPca) pca.explained_variance_ratio_ 的结果显示
我正在使用 scikit-learn PCA查找具有大约 20000 个特征和 400 多个样本的数据集的主要成分。 但是,与Orange3 PCA相比应该使用 scikit-learn PCA,我得
Sklearn PCA 是 pca.components_ 的 loadings?我很确定是这样,但我正在尝试遵循一篇研究论文,但我从他们的加载中得到了不同的结果。我在 sklearn 文档中找不到它
我有一个包含 50 多个变量的数据框 data,我正在尝试使用 caret 包在 R 中执行 PCA。 library(caret) library(e1071) trans <- preProces
我正在使用 PCA 来降低 N 维数据集的维数,但我想增强对大异常值的稳健性,因此我一直在研究 Robust PCA 代码。 对于传统的 PCA,我使用的是 python 的 sklearn.deco
我正在降低 Spark DataFrame 的维度与 PCA带有 pyspark 的模型(使用 spark ml 库)如下: pca = PCA(k=3, inputCol="features", o
我在 matlab 和 python 中生成相同的矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13
概述 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取技术,用于将高维数据转换为低维的特征空间。其目标是通过线性变换将原始特征转化为
目录 计算过程 投影分量计算 假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常
我正在考虑使用 PCA(TruncatedSVD) 来减少我的稀疏矩阵的维数。 我将我的数据拆分为训练和测试拆分。 X_train , X_test, y_train, y_test = train_
我有来自四个群体、四个处理和三个重复的个体数据集。每个个体仅在一个群体、处理和重复组合中。我对每个人进行了四次测量。我想对每个种群、底物和重复组合的这些测量进行 PCA。 我知道如何对所有个体进行 P
在考虑均值时,数字 1 和 2 背后的直觉是什么?这将如何影响性能和准确性? 1号: pca = decomposition.PCA(n_components=4) X_centere
我正在使用来自 here 的输入数据(见第 3.1 节)。 我正在尝试使用 scikit-learn 重现它们的协方差矩阵、特征值和特征向量。但是,我无法重现数据源中显示的结果。我也在别处看到过这个输
我要做的事情如下:我有一套 Vektors v1-vn对于这些,我需要协方差矩阵(我在做 pca 时得到的)。我还需要协方差矩阵的特征值和特征向量。我按降序对特征值进行排序,然后根据相应的特征值对特征
给定 http://docs.opencv.org/modules/core/doc/operations_on_arrays.html PCA 应该可以通过传递一个矩阵来初始化。 cv::Mat m
我是一名优秀的程序员,十分优秀!