【发布时间】:2016-11-05 16:23:07
【问题描述】:
我在一个数组中有两个“轮廓”形状,一个轮廓是我知道他的实际大小的正方形,另一个是我需要进行比例测量的痣。 这是图像示例:
正方形有10x10mm,如何根据正方形知道其他形状的大小?
到目前为止我尝试的是这样的:
var molePerimeter = CvInvoke.ArcLength(contours[0], false);
double moleArea = CvInvoke.ContourArea(contours[0], false);
var squarePerimeter = CvInvoke.ArcLength(squares[0], true);
double squareArea = CvInvoke.ContourArea(squares[0], false);
textBox2.AppendText("Area: " + squareArea / moleArea);
textBox2.AppendText("perimeter: " + squarePerimeter / molePerimeter);
但我不认为这是正确的。
【问题讨论】:
-
1) 您需要确保/假设相机轴垂直于白色方块,否则您会引入失真,即痣与相机的距离与白色方块的距离相同。 2)你想知道痣的面积、周长还是长轴/短轴?
-
@MarkSetchell 我会得到痣的周长、面积和长度。知道正方形是 1x1cm,我会尝试得到真正的尺寸。但是我如何计算呢?
标签: opencv math shape emgucv measurement