Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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
opencv读取图像c#中的文本(visual studio)_C#_Visual Studio - Fatal编程技术网

opencv读取图像c#中的文本(visual studio)

opencv读取图像c#中的文本(visual studio),c#,visual-studio,C#,Visual Studio,大家好,我用opencv写了一个文本检测代码,但是我有一个错误,我的代码不能完整的预测。这是我的代码 public int FindWrite() { // aimg = new IplImage(img.Size, BitDepth.U8, 1); IplImage labelImage = new IplImage(img.Size, CvBlobLib.DepthLabel, 1); labelImage = new IplImage

大家好,我用opencv写了一个文本检测代码,但是我有一个错误,我的代码不能完整的预测。这是我的代码

 public int FindWrite()
    {
       // aimg = new IplImage(img.Size, BitDepth.U8, 1);
        IplImage labelImage = new IplImage(img.Size, CvBlobLib.DepthLabel, 1);
        labelImage = new IplImage(img.Size, BitDepth.U8,1);
        blob = new CvBlobs();
        text.Clear();
      CvBlobLib.Label(labelImage,blob);

        CvBlobLib.FilterByArea(blob, 600, 10000);
        IplImage imgtemp = img.Clone(); 
     //  CvBlobLib.RenderBlobs(blob, img, imgtemp, RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
      //  CvBlobLib.RenderBlobs(blob,img, imgtemp, RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
        CvBlobLib.RenderBlobs(blob,labelImage, imgtemp, RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
       // CvBlobLib.RenderBlobs(blob, labelImage, imgtemp, RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
        foreach (var item in blob)
        {

            item.Value.SetImageRoiToBlob(bimg);
            // ratio values of plate between 3.5 and 5.4 
            double ratio = (double)item.Value.Rect.Width / item.Value.Rect.Height;
            double angle = (double)item.Value.Angle();
            if (ratio > 3.5 && ratio < 5.4 && angle > -15 && angle < 15)
            {

                IplImage texttemp = new IplImage(new CvSize(140, 27), bimg.Depth, bimg.NChannels);
                Cv.Resize(bimg, texttemp);

                text.Add(texttemp);
                img.Rectangle(item.Value.Rect, new CvScalar(0, 0, 255), 2, LineType.Link4);
            }
        }

        img.ResetROI();
        return text.Count;

    }
public int FindWrite()
{
//aimg=新IplImage(img.Size,BitDepth.U8,1);
IplImage标签图像=新IplImage(img.Size,CvBlobLib.DepthLabel,1);
labelImage=新的IplImage(img.Size,BitDepth.U8,1);
blob=新的CVBLOB();
text.Clear();
CvBlobLib.标签(标签图像,blob);
CvBlobLib.FilterByArea(blob,600,10000);
IplImage imgtemp=img.Clone();
//CvBlobLib.RenderBlobs(blob、img、imgtemp、RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
//CvBlobLib.RenderBlobs(blob、img、imgtemp、RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
CvBlobLib.RenderBlobs(blob、labelImage、imgtemp、RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
//CvBlobLib.RenderBlobs(blob、labelImage、imgtemp、RenderBlobsMode.BoundingBox | RenderBlobsMode.Angle);
foreach(blob中的var项目)
{
项目值设置图像ROITOBLOB(bimg);
//板的比值介于3.5和5.4之间
双重比率=(双重)item.Value.Rect.Width/item.Value.Rect.Height;
双角度=(双)item.Value.angle();
如果(比率>3.5&&比率<5.4&&角度>-15&&角度<15)
{
IplImage texttemp=新IplImage(新CvSize(140,27),双通道深度,双通道);
Cv.调整大小(bimg、texttemp);
text.Add(texttemp);
img.Rectangle(item.Value.Rect,新的CvScalar(0,0,255),2,线型.Link4);
}
}
img.ResetROI();
返回text.Count;
}

感谢您的进步

调试它时会发生什么?代码将用于每个(blob中的var项),但不会进入内部我编写了类库此项目并创建第二个项目以便使用windows窗体进行测试如果您希望我发送到我的测试项目的代码您正在标记
labelImage
,它是空的。所以你不会发现任何斑点,也不会进入循环。您确定不想这样做:
CvBlobLib.Label(img,blob)它与它无关,所以我结束了这句话,是发生了,但我不明白为什么