После некоторого определения цвета и бинарного порога я использую следующий код, чтобы найти контуры и нарисовать их на изображении:
using (MemStorage stor = new MemStorage())
{
Contour<Point> contours = img.FindContours(
Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST,
stor);
for (; contours != null; contours = contours.HNext)
{
Contour<Point> currentContour = contours.ApproxPoly(contours.Perimeter * poly, stor);
img.Draw(currentContour,new Bgr(255,255,255),1);
Rectangle currentrect = currentContour.BoundingRectangle;
img.Draw(currentrect,new Bgr(255,255,255),2);
}
}
Моя проблема, как я и ожидал, заключается в том, что если контур представляет собой прямоугольник, но повернут на изображении, ограничивающий прямоугольник не меняет свою ориентацию, чтобы соответствовать вращению. Это другой способ выполнить эту функцию? Любая помощь будет принята с благодарностью.