opencv 物体尺寸测量

1 原图,已知左上角正方形的实际大小为 2cm

opencv 物体尺寸测量_第1张图片

2 转为灰度图  + 高斯模糊

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)    
 cv2.GaussianBlur(gray, (9, 9), 0)

opencv 物体尺寸测量_第2张图片

3、边缘检测

edged = cv2.Canny(blur, 50, 100)+ 开运算

opencv 物体尺寸测量_第3张图片

4、根据左上角参考物体,计算单位长度中的像素个数、

pixel_per_cm = dist_in_pixel/dist_in_cm

5、计算物体轮廓的最小外接矩形,并获取四个顶点的坐标

cv2.minAreaRect(cnt)   + box = cv2.boxPoints(box)

6、根据4个顶点和单位长度中像素的个数,计算被测量物体的宽、高

wid = euclidean(tl, tr)/pixel_per_cm
ht = euclidean(tr, br)/pixel_per_cm

opencv 物体尺寸测量_第4张图片

 

-----------------------------------------------------------------------------------------------------------------------------------------------

这里的物体检测只使用于图像非常简单的情况,对于复杂背景的图像需要更有效的物体检测方法,如下图

opencv 物体尺寸测量_第5张图片

参考文献

https://github.com/snsharma1311/object-size

你可能感兴趣的:(opencv 物体尺寸测量)