Как я могу получить реальную высоту контура в C#?
Я хочу получить высоту башни внутри изображения. Я измерил его по правилу, которое нашел 9 см. Я использую контур для сегментации, а затем вычисляю высоту контура, но выход моей программы равен 358.
что это? и как я получу реальный результат?
Что я уже пробовал:
temp = new Image<Bgr, byte>("F:\\project\\brige1.png"); Image<Gray, byte> img3 = temp.Convert<Gray, byte>().ThresholdBinary(new Gray(50), new Gray(255)).Dilate(1).Erode(1); Emgu.CV.Util.VectorOfVectorOfPoint contours = new Emgu.CV.Util.VectorOfVectorOfPoint(); Mat m = new Mat(); CvInvoke.FindContours(img3, contours, m, Emgu.CV.CvEnum.RetrType.External, Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple); Dictionary<int, double> dict = new Dictionary<int, double>(); if (contours.Size > 0) { for (int i = 0; i < contours.Size; i++) { Rectangle rect = CvInvoke.BoundingRectangle(contours[i]); double aera = CvInvoke.ContourArea(contours[i]); int h = rect.Height; MessageBox.Show("The heith is = " + h.ToString()); CvInvoke.Rectangle(temp, rect, new MCvScalar(0, 255, 0), 3); pictureBox5.Image = temp.Bitmap; }
Richard Deeming
Было ли это ровно 9 см или ближе к 10 см?
Я подозреваю, что 358-й находится в пикселях. Если ваш дисплей имеет 92dpi, это будет примерно 3,9 дюйма или 9,9 см.
Member 14129828
вы правы...спасибо...Я вычислил диапазон изображения и получил близкое значение вашей гипотезы
Patrice T
Если проблема решена, опубликуйте решение и примите его.
Member 14129828
да...проблема решена..но как я ее выложу?