Python opencv宽度测量

python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学检测  本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量,缺陷检测,医学处理。 一:宽度测量   在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,无法满足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具有检测精度高、速度快、成本低、安装简便等优点。可以检测零件的各种尺寸,如长度、圆、角度、线弧等测量。   利用python+opencv方法可以进行宽度的测量。步骤是先选取出一个矩形,然后进行阈值分割,再进行反色,边缘提取 阅读详情

题目描述
利用opencv或其他工具编写程序实现宽度测量。


实现过程

# -*- coding: utf-8 -*-
'''
作者 : 丁毅
开发时间 : 2021/4/14 14:52
'''
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont

#用于给图片添加中文字符
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    # 判断是否OpenCV图片类型
    if (isinstance(img, np.ndarray)):
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    # 创建一个可以在给定图像上绘图的对象
    draw = ImageDraw.Draw(img)
    # 字体的格式
    fontStyle=ImageFont.truetype("font/simsun.ttc",textSize, encoding="utf-8")
    # 绘制文本
    draw.text((left, top), text, textColor, font=fontStyle)
    # 转换回OpenCV格式
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

#读取图片
img = cv2.imread(r"C:\Users\pc\Desktop\gongjian1-2.bmp")
cv2.imshow("image",img)

#截取目标区域
x0, y0, w0, h0 = cv2.selectROI(windowName="image", img=img, showCrosshair=False, fromCenter=False)
cut_img = img[y0: y0 + h0, x0: x0 + w0]

#二值化处理
ret, th = cv2.threshold(cut_img, 80, 255, cv2.THRESH_BINARY_INV)

# 边缘检测
img1 = cv2.Canny(cut_img, 100, 200)
# 反色
img1 = 255 - cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
# 灰度图
gray_img = cv2.cvtColor(255 - th, cv2.COLOR_RGB2GRAY)

#获得轮廓,用一个矩形框出物体的轮廓
contours, hierarchy = cv2.findContours(gray_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
x, y, w, h = cv2.boundingRect(contours[0])

img[y0: y0 + h0, x0: x0 + w0] = img1
cv2.imshow('image2', img)

# 绘制直线
cv2.line(img1, (x, y), (x, y + h), (255, 0, 0), 2, 5)    # 左侧线
cv2.line(img1, (x + w, y), (x + w, y + h), (255, 0, 0), 2, 5)    # 右侧线

img[y0: y0 + h0, x0: x0 + w0] = img1
cv2.imshow('image3', img)

#图片上添加宽度大小
img = cv2ImgAddText(img, '宽度%d'%h, 20, 20, (255, 0, 0), 25)    # 在图片上显示文字
cv2.imshow('image4', img)
cv2.waitKey(0) 
cv2.destroyAllWindows()


运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


问题及解决
1.使用鼠标截取目标区域
参考链接
方式:selectROI(windowName, img, showCrosshair=None, fromCenter=None):

  • 参数windowName:选择的区域被显示在的窗口的名字
  • 参数img:要在什么图片上选择ROI
  • 参数showCrosshair:是否在矩形框里画十字线.
  • 参数fromCenter:是否是从矩形框的中心开始画

该方式可以直接通过鼠标来操作,选取指定的区域,选取后点击回车即可运行之后的代码。


2.检测物体的轮廓
参考链接
方式:
cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset ]]]]])

  • 第一个参数是指明在哪幅图像上绘制轮廓;
  • 第二个参数是轮廓本身,在Python中是一个list。
  • 第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓。后面的参数很简单。其中thickness表明轮廓线的宽度,如果是-1(cv2.FILLED),则为填充模式。

3.用矩形框出物体的轮廓
参考链接
示例效果图:
在这里插入图片描述

方式:cv2.boundingRect(img)
传入img:二值图
返回值:x, y, w, h,(x,y)是矩阵左上角的坐标,w,h是矩阵的宽与高。


4.绘制直线的方法
参考链接
示例:
line(frame, beginPoint, endPoint, Scalar(0, 0, 255), 2);
画一条直线,起点为beginPoint,终点是endPoint,颜色是红色,线宽是2,shift为默认值。beginPoint与endPoint是坐标值。

python图像物体的自动标注尺寸_Python OpenCV实现测量图片物体宽度 一、 题目描述测量所给图片的高度,即上下边缘间的距离。思路:将图片进行阈值操作得到二值化图片。截取只包含上下边框的部分,以便于后续的轮廓提取轮廓检测得到结果二、 实现过程1.用于给图片添加中文字符#用于给图片添加中文字符def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(im... 阅读详情

相关推荐

python宽度测量(机器视觉)

python宽度测量(机器视觉) 思路: 读取原图片,并且转换成灰色图 截取需要测量图像的区域 对截取图像进行黑白二值化处理 然后框出物体的轮廓,得到轮廓坐标和长和宽,并且输出宽度 同时进行高斯边缘检测(得到白色背景黑色的物体边框) 对高斯边缘检测图绘制直线 将截取的图像(经过绘制直线处理过的高斯边缘检测图)替换掉原图相应部分 输出图片 原图: 代码: import cv2 from PIL import Image, ImageDraw, ImageFont import numpy as np

ljf190409的博客 2003

OPENCV(六)宽度测量

宽度检测: 在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,无法满足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具有检测精度高、速度快、成本低、安装简便等优点。可以检测零件的各种尺寸,如长度、圆、角度、线弧等测量。 利用python+opencv方法可以进行宽度的测量。步骤是先选取出一个矩形,然后进行阈值分割,再进行反色,边缘提取之后进行点的选择,输出坐标做出两条线段,根据线段进行矩形绘制,这样之后就可以计算两条直线之间

JAVA领域优秀创作者 5221

opencv-python 机器视觉:宽度测量

opencv-python 宽度测量 源码 import cv2 import numpy as np import imutils if __name__ == "__main__": #读取图片 img = cv2.imread("gongjian1-2.bmp") cv2.imshow("img",img) #截取目标区域 img = imutils.resize(img, width=500) roi = cv2.selectROI(windowName="image1", img=i

qq_47389540的博客 2411

C++使用opencv实现单目测距

闲来无事,用C++做了一个简易的单目测距。实现了读取照片测距,读取笔记本摄像头测距,读取视频测距三个功能。 接下来将从原理到代码逐步分析。 ①单目测距原理: 相似三角形原理:

一条咸鱼的博客 1万+

opencv python图片的长宽_Python OpenCV实现测量图片物体宽度

一、 题目描述测量所给图片的高度,即上下边缘间的距离。思路:将图片进行阈值操作得到二值化图片。截取只包含上下边框的部分,以便于后续的轮廓提取轮廓检测得到结果二、 实现过程1.用于给图片添加中文字符#用于给图片添加中文字符def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(im...

weixin_29144993的博客 2444

实验6、Python-OpenCV宽度测量

Your browser does not support the audio element. 一、 题目描述 测量所给图片的高度,即上下边缘间的距离。 思路: 将图片进行阈值操作得到二值化图片。 截取只包含上下边框的部分,以便于后续的轮廓提取 轮廓检测 得到结果 二、 实现过程 1.用于给图片添加中文字符 #用于给图片添加中文字符 def ImgText_CN(img, tex...

Shinebone的博客 472

python opencv实时显示测量数据_python OpenCV 宽度测量

机器视觉第六次实验一、实验目的通过OpenCV第六次进行实验,对图片进行宽度测量。二、实验内容对图片进行宽度测量。三、实验过程我使用的是python语言+openCV对图片进行宽度测量的功能。1)读取图片使用imread()函数读取图片,使用imshow()函数显示图片,waitKey()函数含义为按下任意键继续;代码实例:img = cv2.imread("img1.png")cv2.imsho...

weixin_39960503的博客 1329

python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学处理)

  本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量,缺陷检测,医学处理。 一:宽度测量   在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,无法满足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具有检测精度高、速度快、成本低、安装简便等优点。可以检测零件的各种尺寸,如长度、圆、角度、线弧等测量。   利...

ITxiaoangzai的博客 6487

python 机器视觉测量_python OpenCV 宽度测量

机器视觉第六次实验一、实验目的通过OpenCV第六次进行实验,对图片进行宽度测量。二、实验内容对图片进行宽度测量。三、实验过程我使用的是python语言+openCV对图片进行宽度测量的功能。1)读取图片使用imread()函数读取图片,使用imshow()函数显示图片,waitKey()函数含义为按下任意键继续;代码实例:img = cv2.imread("img1.png")cv2.imsho...

weixin_34392227的博客 1497

opencv不规则物体宽度测量

基于opencv测量不规则物体的宽度 在获得的区域内选取任意一点,以该点画圆,半径逐步增加,设定条件(在该圆中的烟草区域/圆的面积<某阈值),当不符合时,将圆进行空白区域中心的反向半径方向移动,直到满足条件(设定最大移动范围);

Sourcetree与Gitee的搭配使用

初次将gitee与sourcetree联合起来使用,还是遇到了不少问题,其中最让人烦恼的就是在我修改了一下用户名之后,便无法在Sourcetree直接推送到gitee,很是让人郁闷。本文处理Sourcetree与gitee搭配使用过程中的问题:Sourcetree身份验证失败,无法推送;Sourcetree推送时,无法显示要推送的分支;Sourcetree远端上面有感叹号。

年少时的棉花糖 4434

python 图像宽度,Python+OpenCV实现图像特定区域宽度测量

在Jupyter Notebook上使用Python+opencv实现如下图像特定区域宽度测量。关于opencv库的安装可以参考:Python下opencv库的安装过程与一些问题汇总。1.实现代码import cv2import numpyfrom PIL import Image, ImageDraw, ImageFont#用于给图片添加中文字符def ImgText_CN(img, text,...

weixin_39789646的博客 1145

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 128

python opencv实时显示测量数据_实验6、Python-OpenCV宽度测量

Your browser does not support the audio element.一、 题目描述测量所给图片的高度,即上下边缘间的距离。思路:将图片进行阈值操作得到二值化图片。截取只包含上下边框的部分,以便于后续的轮廓提取轮廓检测得到结果二、 实现过程1.用于给图片添加中文字符#用于给图片添加中文字符def ImgText_CN(img, text, left, top, text...

weixin_28841265的博客 515

【论文+CAD图纸】光储充一体化微电网设计

近些年来,我国的经济发展迅速,对能源的需求不断增长,也加重了对环境的破坏,违背了我国的可持续发展战略。所以迫切需要寻找新型能源。由于太阳能在使用时不会产生污染,所以太阳能逐渐受到人们的重视。我国的太阳能资源丰富,具有的开发利用潜力。特别是近些年“光储充”一体化充电站为高科技绿色充电模式,“以光养桩”使光伏、储能、智能充电协同,智能微电网与公共电网互动,本设计对探索清洁可再生能源在民用场合的应用,有着重大的理论和工程价值。本文综述国内外相关光伏发电的成果和发展现状;

weixin_761237174的博客 925

不只是安装:用OrbbecSDK_ROS2玩转深度相机点云、滤波与DDS调优

本文深入探讨了如何通过OrbbecSDK_ROS2实现深度相机的高级应用,包括点云处理、深度图优化和DDS调优。详细介绍了点云采集与可视化技巧、多种滤波算法的配置与组合策略,以及针对高带宽数据传输的DDS高级调优方法,帮助开发者在机器人导航和三维重建等场景中提升性能。

weixin_29246195的博客 777

opencv 图片宽度python_Python OpenCV实现测量图片物体宽度

一、 题目描述测量所给图片的高度,即上下边缘间的距离。思路:将图片进行阈值操作得到二值化图片。截取只包含上下边框的部分,以便于后续的轮廓提取轮廓检测得到结果二、 实现过程1.用于给图片添加中文字符#用于给图片添加中文字符def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(im...

weixin_39524741的博客 511

PCIE的MSI中断处理机制与优化策略

PCIe设备的。

xiaoheshang_123的博客 516

python 机器视觉测量_python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学处理)...

本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量,缺陷检测,医学处理。python一:宽度测量在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,没法知足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具备检测精度高、速度快、成本低、安装简便等优势。能够检测零件的各类尺寸,如长度、圆、角度、线弧等测量。利用pyth...

weixin_36247564的博客 1884

大数据架构中的数据治理:元数据管理与数据血缘追踪实践

本文将聚焦大数据架构中数据治理的两大核心支柱——元数据管理与数据血缘追踪元数据管理的目标、类型与实施步骤(从需求分析到工具落地);数据血缘追踪的技术实现(静态解析、动态捕获、混合方案)与应用场景;如何将两者结合,构建完整的数据治理体系,并通过真实案例展示落地效果。元数据管理:定义了业务/技术/操作元数据,讲解了工具选型(如Apache Atlas)、采集(Hook/API)、存储(关系库+图数据库)、应用(数据发现、质量监控);数据血缘追踪。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 868

实现端到端加密的WebRTC视频会议终端

需要注意的是,上述示例代码中没有涉及到具体的加密算法和密钥交换过程,而是通过WebRTC API自动处理了加密和密钥交换的细节。然后,我们通过信令服务器将本地SDP发送给对方,并接收对方的SDP。最后,我们将对方的SDP设置为远程描述,并将最终的连接建立起来。最后,我们将对方的SDP设置为远程描述,并建立最终的连接。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。

WaJulia的博客 434

用python和opencv来测量目标到相机的距离_用 Python 和 OpenCV 来测量相机到目标的距离...

原标题:用 Python 和 OpenCV 来测量相机到目标的距离几天前,一个叫 Cameron 的 PyImageSearch 读者发来邮件询问摄像头测距的方法。他花了一些时间研究,但是没有找到解决办法。我很能体会 Cameron 的感受。几年前我做过一个分析棒球离手飞向本垒的运动的小项目。我通过使用运动分析和基于轨迹的跟踪方法来确定或者估计小球在视频帧中的位置。并且因为棒球的大小是已知的,所以...

weixin_39854730的博客 282

出现 has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header is present on the 解决方法

Access to XMLHttpRequest at 'http://127.0.0.1:5000/api/data' from origin 'http://10.197.0.79:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

码农研究僧的博客 1万+

OpenCV图像距离检测

if key == ord('q') or key == 27: # 按q或ESC退出。image_path = "example.jpg" # 替换为实际图像路径。:param known_width: 已知物体的实际宽度。:param known_width: 已知物体的实际宽度。:param focal_length: 相机焦距。:param focal_length: 相机焦距。:param image_path: 图像路径。:return: 两点之间的实际距离。计算两点之间的实际距离。

yzx991013的博客 918

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

别再问摄像头到杯子有多远了!用Python+OpenCV写个单目测距脚本,5分钟就能跑起来

本文详细介绍了如何使用Python和OpenCV快速搭建一个单目测距系统,5分钟内即可实现桌面物体的距离测量。通过相似三角形原理和摄像头标定,结合代码示例和优化技巧,帮助开发者轻松掌握单目测距技术,适用于智能书桌、AR测量等多种场景。

weixin_30460489的博客 365

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: UserWarning: [W008] Evaluating Doc.similarity based on empty vectors.
下一篇: Graphviz保姆级安装教程及应用(.dot转.png)
Dream丶Killer
Dream丶Killer 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄8年 7万+粉丝 187原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值