110,538
社区成员
发帖
与我相关
我的任务
分享
IntPtr Dyncontour = new IntPtr();//存放检测到的图像块的首地址
IntPtr Dynstorage = CvInvoke.cvCreateMemStorage(0);
int n = CvInvoke.cvFindContours(b, Dynstorage, ref Dyncontour, StructSize.MCvContour
, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_EXTERNAL, Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN _APPROX_SIMPLE, new Point(0, 0));
MCvBox2D rect;
rect = CvInvoke.cvMinAreaRect2(Dyncontour, Dynstorage);
PointF[] rect_p = new PointF[4];
CvInvoke.cvBoxPoints(rect, rect_p);
Point[] pt = new Point[4];
for (int i = 0; i < 4; i++)
{
pt[i].X = (int)rect_p[i].X;
pt[i].Y = (int)rect_p[i].Y;
}
CvInvoke.cvLine(a, pt[0], pt[1], new MCvScalar(255, 255, 255), 2, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);
CvInvoke.cvLine(a, pt[1], pt[2], new MCvScalar(255, 255, 255), 2, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);
CvInvoke.cvLine(a, pt[2], pt[3], new MCvScalar(255, 255, 255), 2, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);
CvInvoke.cvLine(a, pt[3], pt[0], new MCvScalar(255, 255, 255), 2, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);