InvalidOperationException(生成的值不在0和1之间。)Accord.net

InvalidOperationException(生成的值不在0和1之间。)Accord.net,accord.net,Accord.net,我目前正在尝试使用Accord.NET框架中的KMeans算法 这是我的密码: private Bitmap runKMeans(Bitmap image) { // Retrieve the number of clusters int k = 5; // Create converters ImageToArray imageToArray = new ImageToArray(min: -1, max: +1);

我目前正在尝试使用Accord.NET框架中的KMeans算法

这是我的密码:

private Bitmap runKMeans(Bitmap image)
    {
        // Retrieve the number of clusters
        int k = 5;

        // Create converters
        ImageToArray imageToArray = new ImageToArray(min: -1, max: +1);
        ArrayToImage arrayToImage = new ArrayToImage(image.Width, image.Height, min: -1, max: +1);

        // Transform the image into an array of pixel values
        double[][] pixels; 
        imageToArray.Convert(image, out pixels);


        // Create a K-Means algorithm using given k and a
        //  square Euclidean distance as distance metric.
        KMeans kmeans = new KMeans(k, Distance.SquareEuclidean);

        // Compute the K-Means algorithm until the difference in
        //  cluster centroids between two iterations is below 0.05
        int[] idx = kmeans.Compute(pixels, 0.05);

        // Replace every pixel with its corresponding centroid
        pixels.ApplyInPlace((x, i) => kmeans.Clusters.Centroids[idx[i]]);

        //Create a Bitmap and return it
        Bitmap result; arrayToImage.Convert(pixels, out result);

        return result;
    }
当我运行程序时,在这一行引发了一个异常:

int[] idx = kmeans.Compute(pixels, 0.05);
类型:“System.InvalidOperationException”生成的值不在0和1之间


经过一些研究,我发现KMeans算法的随机数生成器引发了这个异常。有人知道如何解决这个问题吗?

嗨,Sascha,我是来自Accord.NET框架的Cesar。请允许我问一下,您是否可以在项目问题跟踪程序中打开错误报告,并提供导致问题的示例图像?谢谢