簡體   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