python + opencv图像处理——对象测量

python-opencv 图像处理基础 (九)图像梯度+边缘检测+直线检测+圆检测+轮廓检测+对象测量 在二阶导数的时候,最大变化处的值为0即边缘是零值。通过二阶导数计算,依据此理论可以计算图像二阶导数,提取边缘。scharr 进行边缘增强后的梯度提取,提取弱边缘 ,噪声敏感,需要降噪。x和y方向最终结果很好的反应了像素梯度变化差异。一阶导数与sobel算子。一阶导数与sobel算子。二阶导数与拉普拉斯算子。..................... 阅读详情

1、弧长与面积
①轮廓发现;
②计算每个轮廓的弧长与面积,像素单位;
2、多边形拟合
①获取轮廓的多边形拟合结果(approxPolyDP)
espilon越小折线越逼近真实形状
close是否为闭合区域
3、几何矩计算
①原点矩;
②中心矩;
③图像重心坐标;
注:OTSU二值化可能会丢失数据

# 对象测量
from matplotlib import pyplot as plt 
from cv2 import cv2 as cv
import numpy as np 

# 采用canny边缘提取
def edge_demo(image):
    blurred = cv.GaussianBlur(image,(3,3),0)  #高斯降噪,适度
    gray = cv.cvtColor(blurred,cv.COLOR_BGR2GRAY)
    #求梯度
    xgrd = cv.Sobel(gray,cv.CV_16SC1,1,0)
    ygrd = cv.Sobel(gray,cv.CV_16SC1,0,1)

    egde_output = cv.Canny(xgrd,ygrd,50,150)  #50低阈值,150高阈值
    #egde_output = cv.Canny(gray,50,150)   #都可使用
    cv.imshow('canny_edge',egde_output)
    return egde_output

def measure_object(image):
    
    # dst = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    # ret,binary = cv.threshold(dst,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
    # print('threshold valus: %s'%ret)
    # cv.imshow('binary image',binary)
    
    binary = edge_demo(image)
    dst = cv.cvtColor(binary,cv.COLOR_GRAY2BGR)
    contours, heriachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)#注意 我的版本只有两个返回参数,具体看函数说明是返回几个参数
    for i,contour in enumerate(contours):
        area = cv.contourArea(contour)
        rect = cv.boundingRect(contour)#得到轮廓的外接矩形
        x,y,w,h = cv.boundingRect(contour)
        rate = min(w,h)/max(w,h)#宽高比
        print('%d rectangle rate:%s'%(i,rate))
        mm = cv.moments(contour)#得到几何矩
        #print(mm)  #为啥不一样?为啥黑色的背景就没有问题
        type(mm)
        
        cx = mm['m10']/mm['m00']
        cy = mm['m01']/mm['m00']    #得到图像重心(中心)位置
        cv.circle(dst,(np.int(cx),np.int(cy)),2,(0,255,255),-1)#标记中心点
        #cv.rectangle(dst,(x,y),(x+w,y+h),(0,0,255),2)#绘制外接矩形
        print('contour area:%s'%area)
        #多边形拟合
        approxCurve = cv.approxPolyDP(contour,4,True)
        print(approxCurve.shape)
        if approxCurve.shape[0] > 6:#画圆、椭圆
            cv.drawContours(dst,contours,i,(0,255,0),2)
        if approxCurve.shape[0] == 4:#矩形恒等于4
            cv.drawContours(dst,contours,i,(0,0,255),2)
        if approxCurve.shape[0] == 3:#三角形恒等于3
            cv.drawContours(dst,contours,i,(255,0,0),2)
        if approxCurve.shape[0] == 6:#六边形恒等于6
            cv.drawContours(dst,contours,i,(255,0,0),2)
    cv.imshow('measure_contour',dst)
    cv.imwrite("C:\\pictures\\others\\012345678.jpg",dst)

if __name__ == "__main__":
    filepath = "C:\\pictures\\others\\measure1.png"
    img = cv.imread(filepath)       # blue green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",img)

    measure_object(img)

    cv.waitKey(0)
    cv.destroyAllWindows()

结果如下:
在这里插入图片描述

Python3与OpenCV3.3 图像处理(二十二)--对象测量(纯代码) import cv2 as cv import numpy as np def measure_object(img): gray=cv.cvtColor(img,cv.COLOR_RGB2GRAY) ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU) cv.imshow("bi... 阅读详情

相关推荐

利用数字图像处理技术测量几何尺寸

利用数字图像处理技术测量几何尺寸

openCV编程基础21--对象测量

主要功能: 1.找目标的轮廓 2.计算轮廓的面积 3.计算轮廓外接矩形并把绘制出来 4.计算长宽比 5.计算轮廓的几何矩 6.找轮廓的中心位置并绘制出来 7.多边形拟合 import cv2 as cv import numpy as np # 对象测量 # 计算每个轮廓的弧长和面积 单位是像素 # 多边形拟合 def measure_object(image): g...

TFZ941214的博客 592

Python-这是用于对象检测的RFCN的PyTorch实现

这是用于对象检测的R-FCN的PyTorch实现。 这个项目主要基于faster_rcnn_pytorch

OpenCV测量物体的尺寸技能 get~

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达概述在中学的时候地理课上,老师教过我们如何根据地图上面测量的距离来计算实际空间上距离。其原理非常的简单,实际的空间距离=图上距离/地图上的比例尺。我们今天要介绍的内容实际上原理和上面所说的是相同的,关键是如何获取图上距离和比例尺呢?测距原理首先需要知道一个和比例尺类似的概念叫pixels per me...

小白学视觉 4799

Python-用Keras实现YOLOv2对象检测只有20行代码

用Keras实现YOLOv2对象检测(只有20行代码)

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2111

摄像头测量物体大小

需求:比如给你下面这张图片,测出下面这个黑色块的尺寸大小,并返回黑色块在图像中像素位置的对应坐标。

m0_53245772的博客 1880

高分系列卫星轨道、传感器参数等信息

遥感卫星数据简介-高分系列

中遥科 3310

matlab 求二值图像图形的面积和重心

图像如下: 代码如下: close all;clear all;clc; I = imread('duobianxing1.jpg'); I = im2bw(I); C = bwlabel(I,4); Ar = regionprops(C,'Area') Ce = regionprops(C,'Centroid') figure; imshow(I); output: Ar = ...

Ibelievesunshine的博客 9264

高通平台Android稳定性调试笔记:手把手教你用T32、Crash Utility分析Kernel Panic与RAM Dump

本文详细介绍了高通平台Android内核崩溃的分析方法,包括使用T32 Simulator和Crash Utility工具链解析Kernel Panic与RAM Dump。从环境配置、dump文件预处理到高级调试技巧,手把手教你如何定位和解决Android系统崩溃问题,特别适用于MSM/SA8155平台的开发者。

weixin_42543046的博客 528

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 452

python cv2 轮廓的包络 面积_【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)...

转载请注明详细地址本文简单介绍了图像常见几何特征的概念以及求解方法本文介绍了Python和opencv求解几何特征的常用方法目录一、获得轮廓二、面积1、cv2.connectedComponentsWithStats()stats参数解析2、cv2.contourArea()函数三、周长1、cv2.arcLength(contours[0],True)四、细长度1、绘制外接矩形(cv2.recta...

weixin_39911475的博客 2048

深入Google DroidGuard:剖析其自定义虚拟机如何守护Android应用安全(附pcbc文件机制解析)

本文深入解析Google DroidGuard自定义虚拟机如何通过独特的架构设计和加密机制保护Android应用安全。DroidGuard采用动态密钥派生、全加密执行环境和pcbc文件机制,有效防御逆向工程和自动化攻击,为移动安全提供新思路。

weixin_34254464的博客 308

Python+OpenCV图像处理之对象测量

OpenCV中经常会测量对象的面积,周长,质心,边界框等 求图形几何矩中心 并求最小外接矩形python实现 import cv2 import numpy as np __author__ = "boboa" def measure_demo(image): gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ...

weixin_30711917的博客 312

rk3568 Android12 默认授予预装app权限

默认授予预装应用权限可以避免用户在每次使用应用时都要重复同意权限请求。尽管在Android 12中,用户对权限的管理有了更高的控制权,但这也可能导致用户在频繁使用预装应用时感到繁琐和不必要的干扰。通过默认授权,减少了这种麻烦。一些厂商可能会根据其定制的Android系统(如Samsung的One UI、Xiaomi的MIUI)要求某些预装应用默认获得权限,以便应用能够提供厂商特定的功能。这也有助于设备厂商提供统一和稳定的服务,不至于因为权限问题导致某些功能无法使用。

weixin_35723192的博客 661

11 指挥AI写C语言/嵌入式基础代码,适配硬件与底层逻辑

本文为《30天掌控AI编程:从指令到落地,手把手教你指挥AI写代码》系列第十一篇,正式进入第三阶段多场景实战环节。聚焦**C语言/嵌入式基础代码**生成,结合嵌入式开发的核心需求,讲解如何精准编写指令,指挥AI生成适配硬件、贴合底层逻辑的C语言代码,覆盖嵌入式常用底层功能、硬件适配要点、代码规范,搭配完整指令模板、AI输出示例与实操校验方法,零基础也能快速指挥AI完成嵌入式基础开发,无需死记硬背C语言底层语法。

coreopt的博客 140

python+opencv3图像处理学习记录

文章目录概括第一章 简单的图像处理方式图片、视频资源读取色彩空间的转换、对比度、亮度调整像素运算泛洪填充 ROI 概括 本文主要用于记录图像处理学习过程中的笔记与疑问,使用pycharm IDE python语言和opencv工具。 第一章 简单的图像处理方式 图片、视频资源读取 图片读取 import cv2 as cv import numpy as np src = cv.imread("C:/Users/H/Desktop/13d98c6f3117f0a19b9d40c44ac7a30f.jpg

TOPthemaster的博客 1208

【网络安全】浅谈数据库攻击复现及相关安全优化

4、准备数据库服务器为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器 IP 来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。5、定时备份数据库开发定时备份功能,可以使用 Crontab,或者其他框架,设定周期备份数据,哪怕是数据丢失或被删除也可以快速恢复。

2401_88545587的博客 223

Python-OpenCV 图像处理(二十一):对象测量

import cv2 import numpy as np from matplotlib import pyplot as plt __author__ = "zxsuperstar" __email__ = "zxsuperstar@163.com" """ 对象测量 轮廓发现,计算每个轮廓的弧长和面积 多边形拟合 获取多边形拟合结果 approxPolyDP contour ...

zx_good_night的博客 606

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【python OpenCV3.3 图像处理教程:直线检测、圆检测、对象测量、腐蚀、膨胀等形态学操作、数字验证码识别、人脸检测

1. 直线检测 Hough Line Transform:前提:边缘检测已经完成,基于霍夫变换 1.1 原理 可以通过(theta,r)唯一表示一条直线 把过三个点的全部直线以某一角度全部计算出来,如果三个点的直线有相同的,则说明有一条直线过了这三个点。 至于为啥用(theta, r)而不是斜率k和截距b来表示一条直线,是因为利用y = kx + b来表示直线时,存在斜率k无穷大的情况,无法计算。并且theta为0到2*pi, 且对于直线来说r一定小于等于b,所以计算的数值也相对较小。 参考博客 d

chairon的博客 5780

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【OpenCv 4 Python 3.7】对象测量(面积,周长,质心,边界框等)

opencv 对象测量 1、 opencv 中轮廓特征包括: 如面积,周长,质心,边界框等 *弧长与面积测量 *多边形拟合 *获取轮廓的多边形拟合结果 2、python-opencv API提供方法: cv2.moments() 用来计算图像中的中心矩(最高到三阶), cv2.HuMoments() 用于由中心矩计算Hu矩,同时配合函数cv2.contourArea()函数计算轮廓面积,和cv2.arcLength()来计算轮廓或曲线长度 *cv.approxPolyDP(多边形逼近

java_pythons的博客 4261

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python opencv 对象测量

import cv2 as cv import numpy as np def measure_object(img): gray=cv.cvtColor(img,cv.COLOR_RGB2GRAY) ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU) # ...

TingHW的博客 1万+

【Opencv3+Python3入门(18)几何对象测量】

对象测量主要包括一些:弧长与面积,图像中的多边形拟合,几何矩计算等。下面了解其API的使用方式。 弧长与面积: 步骤:轮廓发现完成,计算每个轮廓的弧长与面积,单位为像素。 ### 18,几何对象测量 import cv2 as cv import numpy as np def image_Measure(image): #防止随机噪声影响效果,首先对原图高斯滤波 dst...

【秋名鱼酱的博客】 747

Python OpenCV 对象检测,图像处理取经之旅第 37 篇

本文主要复习 findContours 函数、drawContours函数,以及学习 moments、contourArea 函数

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

【opencv学习笔记 24对象测量】

对象测量 弧长与面积 轮廓发现 多边形发现 approxPloyDP() 几何矩的计算 可以用来进行数字的边界查找,进行区域的划分 相关代码 import cv2 as cv import numpy as np def measure_object(image): # 灰度化 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) #...

Wu123456CS的博客 263
上一篇: python + opencv图像处理——轮廓发现
下一篇: python + opencv图像处理——膨胀与腐蚀
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

xiao黄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值