opencv 物体尺寸测量

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

2 转为灰度图  + 高斯模糊

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

3、边缘检测

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

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

 

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

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

参考文献

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

版权声明:本文为CSDN博主「xieshangxin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xieshangxin/article/details/109098113

xieshangxin

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

目标检测-分水岭分割与阈值分割对比

1.1 对阴影的处理 基于阈值的分割,是在以某个阈值T,对图像进行分割。分割时由于拍摄时图像阴影处导致分割不理想,结果虽然达到理想预期。但是二值化后的结果以阴影部分外围与图像融合,导致再