繁体   English   中英

Emgu cv将CircleF保存为图像

[英]Emgu cv save CircleF as a image

我是图像处理新手,在我的应用程序中,我想将检测到的圆圈保存为新图像,以下代码用于存储检测到的圆圈。

新的CircleF(新的PointF(圆圈[0] .Center.X + grayframeright_1.ROI.Left,圆圈[0] .Center.Y + grayframeright_1.ROI.Top),圆圈[0] .Radius);

emgu cv / open cv中是否有任何方法可以将圆圈保存为新图像?

请帮我解决这个问题,代码示例会很有用。

提前致谢

如果我理解你想要的是有一个覆盖圆形区域的面具并将此蒙版应用于图像。

为此你需要一个面具:

//img is the image you applied Hough to
Image<Gray, byte> mask = new Image<Gray, byte>(img.Width, img.Height);

面具将是一个黑色的图像。 您需要在此图像中绘制圆的区域:

CvInvoke.cvCircle(mask.Ptr, center, radius, new MCvScalar(255, 255, 255), -1, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);
//-1 is to fill the area

现在,蒙版将有一个白色圆圈,其中心位于点center和半径radius 在原始图像和此蒙版之间执行AND操作将仅将蒙版为白色的点(绘制圆圈的位置)复制到新图像。

Image<Bgr, byte> dest = new Image<Bgr, byte>(img.Width, img.Height);
dest = img.And(img, mask);

您现在可以将dest保存为常用图像

dest.Save("C:/wherever...");

如果图像太大且圆圈太小,您可以在将图像保存为圆周围区域之前缩小设置图像ROI的图像尺寸:

dest.ROI = new Rectangle(center.X - radius, center.Y - radius, radius * 2, radius * 2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM