opencv测量物体的长度
看代码前须知:
- 需要固定的摄像头来保证拍摄角度一致
- 需要固定的光源来保证受光面的一致
- 需要固定的检测物体来保证适应所设定的阈值(主要 灰度阈值)
- 需要知道一个物体实际的长度与像素之间的比值 方便做参照
- 使用opencv版本 3.4.2.16
图片:
本人的硬盘一张 图片尺寸:1280X960 拍摄软件:MV 所用镜头:大华
代码片段:
import cv2# 众所周知的套路
# 转灰度->二值化->寻找前景->物体轮廓位置->找出轮廓坐标->运用已知比值->测量物体实际尺寸image = cv2.imread('./image/02.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 120, 255, cv2.THRESH_BINARY)
cv2.imshow('image', binary)
binary,contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.RETR_LIST)for cons in contours:Area = cv2.contourArea(cons)if Area > 800000 and Area < 1000000:print('面积:', Area)cv2.drawContours(image, cons, -1, (0, 0, 255), 1)x, y, w, h = cv2.boundingRect(cons)long = float('%.2f' % (w / 109))wide = ('%.2f' % (h / 109))print('坐标:', x, y, w, h)cv2.putText(image, str('long:{}cm wide:{}cm'.format(long, wide)), (x, y), cv2.CHAIN_APPROX_NONE, 2,(0, 255, 0),3)cv2.imshow("img", image)else:continue
cv2.waitKey(0)
运行结果:
二值化图一张
嵌入前景图一张
报错须知:
在cv2.findContours()寻找前景中,可能会出现报错信息
ValueError: not enough values to unpack (expected 3, got 2)
这个是opencv版本问题
opencv2和opencv4中接受的是2个返回值 contours和hierarchy
opencv3中接受的是3个返回值
有人可能会问 啊! 你这109怎么来的!你个大骗子!rnm退钱!!!
桥豆麻袋!!! 打我可以 别!!!打!!!! 脸!!!!!
这个109是根据原像素跟实际的比例测量出来的 109:1 (109个像素点对应1厘米)
这时候又有同学举手问:
博主,这个像素点是怎么确定的?
回答: print打印结果后发现了什么?
坐标分别对应了 x y w h, 分别是左上角点的坐标x,y 和 矩形的宽高w,h就是像素点
宽高都知道了 与实际测量的比值就确定了 接下来不用我多说了吧
实际测量: 长:10.5cm 宽:7.4cm
opencv结论:长:10.57cm 宽:7.36cm
精确不到毫米我也很无奈 要不试试康耐视的软件? 加密狗也就小一万一个
opencv测量物体的长度相关推荐
- OpenCV测量物体的尺寸技能 get~
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 盛年不重来,一日难再晨. 及时当勉 ...
- opencv 通过标定摄像头测量物体大小_解决方案 | 如何用普通手机准确测量物体体积?...
点击上方"计算机视觉life",选择"星标" 快速获得第一手干货 本文授权自机器之心. 最近,菜鸟全球科技挑战赛总决赛落幕.赛题「智能体积测量」关注物流要素「长 ...
- 使用OpenCV测量图像中物体的大小
本文翻译自pyimagesearch技术博客上的一篇文章,<Measuring size of objects in an image with OpenCV>,原文作者:Adrian R ...
- openCV 轮廓查找-测量物体尺寸
一,利用openCV的findContours轮廓查找功能,用已知物体的尺寸(比如硬币)作为参考,根据实际尺寸与像素尺寸的比列,求出图片中物体的实际大小.存在的问题有两个: 图片的阴影导致轮廓不准确, ...
- 基于C++利用OpenCV视觉库进行手掌图像计算机视觉分析测量手指的长度与宽度
资源下载地址:https://download.csdn.net/download/sheziqiong/85620401 实验简介 通过摄像头获得完整的手掌图像,利用OpenCV视觉库进行计算机视觉 ...
- 机器学习水果识别——python+opencv实现物体特征提取
文章目录 一.用python+opencv实现物体特征值提取 1.读取图像.转为灰度图像并降噪 2.获取水果轮廓 将最大轮廓画入最开始的img图像并显示 将小于某一规模的轮廓删除 3.提取水果的面积周 ...
- OpenCV测量视频编码和解码的性能(附完整代码)
OpenCV测量视频编码和解码的性能 OpenCV测量视频编码和解码的性能 OpenCV测量视频编码和解码的性能 #include "opencv2/core/utility.hpp&quo ...
- 工业相机测量仪毛管测量直径与长度值
图像法测量仪采用工业相机远距离拍照和图像处理的测量方式在穿孔机出口测量直径和长度,并根据输入重量和测量尺寸计算钢管壁厚尺寸. 直径相机的布置形式 本方案中,被测毛管外径范围为φ220-450mm,测量 ...
- Video Input with OpenCV and similarity measurement(使用opencv测量两个视频的相似度)
Video Input with OpenCV and similarity measurement(使用opencv测量两个视频的相似度) 参考示例程序及视频文件下载: 一.先决条件 1.两种检查相 ...
最新文章
- s5pv210 uboot-2012-10移植(三) 之支持SPL
- 释疑の语法 ON CHANGE OF
- ICCV 2017《Unsupervised Laerning of Important Objects from First-Person Videos》论文笔记
- mysql008where.or.in查询
- 人人商城生成app教程_人人商城APP打包教程(APICLOUD版)
- python从小白到大牛pdf 下载 资源共享_Kotlin从小白到大牛 (关东升著) 中文pdf高清版[12MB]...
- 2021年京东小魔方年中新品消费趋势报告
- .bin 文件用excel文件打开_用python读Excel文件
- SQL Server 数据加密功能解析
- useEffect和useLayoutEffect区别
- ios开发之获取版本号,部分设备信息
- 类的加载过程详解之过程三:Initialization(初始化)阶段
- D3实现的ChinaMap
- 故障诊断仪采集发动机EMS故障的报文与故障码记录
- Python常用模块12-python的xlsxwriter模块(操作excel)
- 蓝桥杯 PREV-10 幸运数
- 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了
- 智慧屏鸿蒙1.0和2.0区别,0到1的过程不容易,首发鸿蒙系统的荣耀智慧屏一文看懂有何优势...
- vcs import src < ros2.repos失败
- wordpress最佳架构_如何在2019年选择WordPress主题:最佳选择