- 浏览: 496287 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 def main(): # 计算物体的周长、面积、质心、最小外接矩形等 # OpenCV函数:cv2.contourArea(), cv2.arcLength(), cv2.approxPolyDP() # 等 # =================================寻找轮廓 img = cv2.imread('handwriting2.jpg', 0) _, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) image, contours, hierarchy = cv2.findContours(thresh, 3, 2) # 以数字3的轮廓为例 cnt = contours[0] # =================================轮廓面积 area = cv2.contourArea(cnt) # 4386.5 print("area == " , area) # =================================轮廓周长 perimeter = cv2.arcLength(cnt, True) # 585.7 # 参数2表示轮廓是否封闭,显然我们的轮廓是封闭的,所以是True print("perimeter == ", perimeter) # =================================外接矩形 # 形状的外接矩形有两种,如下图,绿色的叫外接矩形,表示不考虑旋转并且能包含整个轮廓的矩形。 x, y, w, h = cv2.boundingRect(cnt) # 外接矩形 cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) # =================================# 最小外接矩形 rect = cv2.minAreaRect(cnt) # 最小外接矩形 print(rect) box = np.int0(cv2.boxPoints(rect)) # 矩形的四个角点取整 cv2.drawContours(img, [box], 0, (255, 0, 0), 2) # =================================最小外接圆 (x, y), radius = cv2.minEnclosingCircle(cnt) (x, y, radius) = np.int0((x, y, radius)) # 圆心和半径取整 cv2.circle(img, (x, y), radius, (0, 0, 255), 2) # =================================拟合椭圆 ellipse = cv2.fitEllipse(cnt) cv2.ellipse(img, ellipse, (255, 255, 0), 2) # =================================形状匹配 img2 = cv2.imread('shapes.jpg', 0) _, thresh = cv2.threshold(img2, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) image, contours, hierarchy = cv2.findContours(thresh, 3, 2) img_color = cv2.cvtColor(thresh, cv2.COLOR_GRAY2BGR) # 用于绘制的彩色图 cnt_a, cnt_b, cnt_c = contours[0], contours[1], contours[2] print(cv2.matchShapes(cnt_b, cnt_b, 1, 0.0)) # 0.0 print(cv2.matchShapes(cnt_b, cnt_c, 1, 0.0)) # 2.17e-05 print(cv2.matchShapes(cnt_b, cnt_a, 1, 0.0)) # 0.418 # matchShapes(contour1, contour2, method, parameter) # 参数3是匹配方法,详情可参考:ShapeMatchModes,参数4是OpenCV的预留参数,暂时没有实现, # 形状匹配是通过图像的Hu矩来实现的(cv2.HuMoments()),大家如果感兴趣, # # cv2.imshow('thresh', thresh) # # cv2.imshow('edges', edges) cv2.imshow('img', img) cv2.imshow('img2', img2) cv2.waitKey(0) if __name__ == '__main__': main()
发表评论
-
识别图片中的人脸
2018-10-31 21:21 793识别图片中的人脸 # -*-encoding:ut ... -
opencv 霍夫变换(识别出图像中的直线和圆)
2018-10-23 20:34 3114# -*-encoding:utf-8-*- import ... -
opencv 模板匹配(在大图中找小图)
2018-10-22 21:31 8386# -*-encoding:utf-8-*- import ... -
opencv 直方图
2018-10-22 21:30 494# -*-encoding:utf-8-*- import ... -
opencv 轮廓
2018-10-21 20:34 516# -*-encoding:utf-8-*- import ... -
opencv 膨胀腐蚀开闭
2018-10-21 20:34 873# -*-encoding:utf-8-*- import ... -
opencv 边缘检测
2018-10-21 20:32 765# -*-encoding:utf-8-*- import ... -
opencv 平滑图像
2018-10-17 21:25 720opencv 平滑图像 模糊/平滑图片来消除图片噪声 O ... -
opencv 图像混合
2018-10-17 20:58 706opencv 图像混合 图片间的数学运算,如相加、按位运算 ... -
opencv 绘图功能
2018-10-16 22:04 840opencv 绘图功能 学习画线、圆和矩形等多种几何形状, ... -
opencv 图像几何变换
2018-10-16 19:36 914opencv 图像几何变换 实现旋转、平移和缩放图片 了解仿 ... -
opencv 阈值分割
2018-10-16 16:02 1231opencv 阈值分割 同的阈值方法”二值化”图像。 使用 ... -
opencv 颜色空间转换
2018-10-15 19:42 1308opencv 颜色空间转换 颜色空间转换,如BGR↔Gray ... -
openvc 图像基本操作
2018-10-15 19:11 973openvc 图像基本操作 访问和修改图片像素点的值 px ... -
Python OpenCV 基本操作
2018-10-12 22:46 393Python OpenCV 基本操作 加载图片,显示图片, ... -
Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运算)
2018-10-12 22:32 5341Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运 ...
相关推荐
这种方法适用于具有明显几何特征的轮廓提取。 3. **GrabCut算法** GrabCut算法是一种交互式分割方法,用户可以指定初始的前景和背景区域,然后算法会迭代优化分割结果。`cv2.grabCut()`函数实现了这一过程。对于...
使用opencv自带的resize函数放缩会使轮廓点丢失或变暗,本代码可以实现轮廓形状不变放缩
### OpenCV轮廓提取详解 #### 一、OpenCV轮廓提取概述 在计算机视觉领域,轮廓检测是图像处理中的一项重要技术。它可以帮助我们从复杂的图像背景中分离出目标物体,从而便于进一步分析与识别。OpenCV(开源计算机...
这篇“OpenCV笔记:查找轮廓”可能是关于如何在OpenCV中提取图像中的轮廓,这对于物体识别、形状检测等任务至关重要。 在OpenCV中,查找轮廓涉及以下几个关键步骤: 1. **读取图像**:首先,我们需要使用`imread`...
本篇文章将深入探讨OpenCV中的轮廓检测,以及如何使用`cvFindContours`函数进行实践操作。 轮廓是图像中边界或边缘的表示,它们对于对象识别、分割和形状分析至关重要。OpenCV库提供了一套完整的函数来检测和处理...
OpenCV(开源计算机视觉库)提供了一整套强大的工具,使得开发者能够方便地进行图像轮廓的检测与分析。本教程将深入探讨如何基于OpenCV实现图像轮廓的提取,并通过动态调整参数来实时查看提取效果。 首先,我们要...
代码中利用canny边缘检测绘制并取得工程目录图片下的轮廓,对每个轮廓用直线进行拟合,计算每个轮廓中点到拟合直线的距离。以此来判断一个轮廓的线性程度。包括了霍夫变换检测图像中的直线和累计概率霍夫变换检测...
在本文中,我们将深入探讨如何在QT5.8环境下结合OpenCV3.2库实现图像处理中的关键步骤:边缘检测、轮廓提取以及轮廓跟踪。这些技术在计算机视觉、机器学习和自动化领域中扮演着重要角色。 首先,让我们来了解边缘...
OpenCV提供了丰富的函数和模块,用于图像处理,包括图像读取、显示、转换、滤波以及特征检测等。在这个任务中,我们主要关注的是图像的边缘检测和轮廓提取。 边缘检测是找到图像中亮度变化显著的点的过程,这在查找...
opencv轮廓的简单应用: 相关函数如下: cvFindContours,cvThreshold,cvContourArea,cvArcLength,cvBoundingRect,cvMinAreaRect2,cvBoxPoints,cvMinEnclosingCircle,cvDrawContours。 1.查找轮廓 2.按地址...
本示例聚焦于“opencv轮廓提取”,这是一个关键的操作,它允许我们识别图像中的对象或区域。下面我们将深入探讨OpenCV如何实现轮廓提取,以及如何通过参数设定选择提取轮廓的外边缘和内边缘。 首先,我们要理解什么...
这是一个基于opencv的图像轮廓提取程序,可以识别轮廓边沿,是初级学者的参考代码
本程序是基于OpenCV的轮廓操作,包括 (1)一次提取所有轮廓并绘图显示 (2)逐点画出最外层轮廓 (3)逐个画出所有轮廓 注释详细,保证让初学者弄懂轮廓
### 基于OpenCV的车辆轮廓检测 #### 摘要 本文介绍了一种新型的基于开源计算机视觉库OpenCV的车辆轮廓检测方法。针对传统汽车尺寸参数测量手段相对落后的现状,本文提出了一种结合图像处理技术和计算机视觉算法的...
这可以通过计算轮廓的周长、面积、角点数量等特征来完成。 3. **矩形检测**:通过`minAreaRect()`函数来检测出最接近理想矩形的轮廓,该函数会返回一个旋转矩形,包含角度、宽度和高度信息。 4. **旋转校正**:...
### 基于OpenCV的多种特征提取技术详解 #### 一、颜色特征提取与颜色直方图构建 颜色特征是计算机视觉中最基本且重要的特征之一。颜色直方图能够很好地表示图像中颜色的分布情况,是进行图像检索、目标识别等任务...
"opencv绘制轮廓"这个主题涉及到的是如何使用OpenCV来识别并可视化图像中的对象边界,也就是轮廓。轮廓提取是图像分割的重要步骤,常用于物体识别、形状分析以及图像处理的其他应用。 首先,我们要理解OpenCV中的...
OpenCV(开源计算机视觉库)是一个强大的图像处理和计算机视觉工具包,被广泛应用于各种领域,包括轮廓检测。在这个项目中,我们将在VC6.0环境下利用OpenCV来实现轮廓的检测。首先,我们需要理解轮廓检测的基本原理...
opencv+vs2005 图像处理的轮廓提取显示
从静态的视频帧中获取的人物图片先二值化,再利用开操作闭操作以及轮廓填充,获取人物轮廓