Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#和A-未分配局部变量边点的使用_C#_Variables_Local - Fatal编程技术网

C#和A-未分配局部变量边点的使用

C#和A-未分配局部变量边点的使用,c#,variables,local,C#,Variables,Local,我正在尝试编译这段代码(最后一段): 但它抛出:使用未分配的局部变量“edgePoints” 代码如下: BlobCounter blobCounter = new BlobCounter(); blobCounter.ProcessImage(image23); Blob[] blobs = blobCounter.GetObjectsInformation(); GrahamConvexHull hullFinder = ne

我正在尝试编译这段代码(最后一段):

但它抛出:使用未分配的局部变量“edgePoints”

代码如下:

        BlobCounter blobCounter = new BlobCounter();
        blobCounter.ProcessImage(image23);
        Blob[] blobs = blobCounter.GetObjectsInformation();
        GrahamConvexHull hullFinder = new GrahamConvexHull();
        BitmapData data = image23.LockBits(new Rectangle(0, 0, image23.Width, image23.Height), ImageLockMode.ReadWrite, image23.PixelFormat);
        foreach (Blob blob in blobs)
        {
            List<IntPoint> leftPoints, rightPoints, edgePoints;
            blobCounter.GetBlobsLeftAndRightEdges(blob, out leftPoints, out rightPoints);
            edgePoints.AddRange(leftPoints);
            edgePoints.AddRange(rightPoints);
            List<IntPoint> hull = hullFinder.FindHull(edgePoints);
            Drawing.Polygon(data, hull, Color.Red);
        }
        image23.UnlockBits(data);
我绑定为edgePoints分配Null,但失败:

List<IntPoint> leftPoints, rightPoints, edgePoints= null;
列出leftPoints、rightPoints、edgePoints=null;

问题出在哪里?我没有修改源代码,所以一切都应该正常运行。

您需要为它指定一个值:

List<IntPoint> leftPoints, rightPoints, edgePoints;
edgePoints = new List<IntPoint>();

调用(请注意
out
关键字),但是
edgePoints
不是-您需要自己执行此操作。

您需要为它指定一个值:

List<IntPoint> leftPoints, rightPoints, edgePoints;
edgePoints = new List<IntPoint>();

打电话(注意
out
关键字),但是
edgePoints
不是-你需要自己去做。

谢谢它成功了!尽管开发人员将不可编译code@Alex:这真的很奇怪。当我试图检测角色时,你们能帮我解决斑点检测问题吗?“我”被检测为两个物体——“我”和“点”@Alex:我相信有人可以-如果你们有新问题,尽管问吧。另一方面,如果你试图检测字母,你确定斑点检测是正确的方法(“我”实际上是2个斑点-线和点)…是的,我将把每个斑点作为位图,并将它们与“原始”字母进行比较。如果像素颜色匹配=>识别字母。至于“i”问题,我考虑过合并两个位于相同X坐标上的斑点!!不幸的是,我现在还不知道如何实现它。至于“空格”-我可以制定一个规则,如果“blob之间的空格”>=“some int”,那么就添加空格。谢谢,成功了!尽管开发人员将不可编译code@Alex:这真的很奇怪。当我试图检测角色时,你们能帮我解决斑点检测问题吗?“我”被检测为两个物体——“我”和“点”@Alex:我相信有人可以-如果你们有新问题,尽管问吧。另一方面,如果你试图检测字母,你确定斑点检测是正确的方法(“我”实际上是2个斑点-线和点)…是的,我将把每个斑点作为位图,并将它们与“原始”字母进行比较。如果像素颜色匹配=>识别字母。至于“i”问题,我考虑过合并两个位于相同X坐标上的斑点!!不幸的是,我现在还不知道如何实现它。至于“空格”-我可以制定一个规则,如果“blob之间的空格”>=“some int”,然后添加空格。该代码确实错误,可能应该告诉网站所有者。该代码确实错误,可能应该告诉网站所有者。
blobCounter.GetBlobsLeftAndRightEdges(blob, out leftPoints, out rightPoints);