python opencv3 轮廓检测

git:https://github.com/linyi0604/Computer-Vision

 1 # coding:utf8
 2
 3 import cv2
 4 import numpy as np
 5
 6 # 创建一个200*200 的黑色空白图像
 7 img = np.zeros((200, 200), dtype=np.uint8)
 8 # 在图像的中央位置 放置一个100*100的白色方块
 9 img[50:150, 50: 150] = 255
10
11 cv2.imshow("image", img)
12 # 二值化操作
13 ret, thresh = cv2.threshold(img, 127, 255, 0)
14 """
15 ret, dst = cv2.threshold(src, thresh, value, type)
16 参数:
17     src: 原图像
18     thresh: 阈值
19     value: 新值 大于或小于阈值的值将赋新值
20     type: 方法类型,有如下取值:
21         cv2.THRESH_BINARY 黑白二值
22         cv2.THRESH_BINARY_INV 黑白二值翻转
23         cv2.THRESH_TRUNC 得到多像素值
24         cv2.THRESH_TOZERO
25         cv2.THRESH_TOZERO_INV
26 返回值:
27     ret: 得到的阈值值
28     dst: 阈值化后的图像
29 """
30
31 # 得到 修改后的图像, 轮廓, 轮廓的层次
32 image, contours, hierarchy = cv2.findContours(
33     thresh,
34     cv2.RETR_TREE,
35     cv2.CHAIN_APPROX_SIMPLE
36 )
37
38 """
39 img, contours, hierarchy =  cv2.findContours(输入图像, 层次类型, 逼近方法)
40 参数:
41     输入图像: 该方法会修改输入图像,建议传入输入图像的拷贝
42     层次类型:
43         cv2.RETR_TREE 会得到图像中整体轮廓层次
44         cv2.RETR_EXTERNAL 只得到最外面的轮廓
45     逼近方法:
46
47 返回值:
48     img: 修改后的图像
49     contours: 图像的轮廓
50     hierarchy: 图像和轮廓的层次
51
52 """
53 # 原图像转换成bgr图像
54 color = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
55 # 用绿色 在原图像上画出轮廓
56 img = cv2.drawContours(color, contours, -1, (0, 255, 255), 2)
57
58 cv2.imshow("contours", color)
59 cv2.waitKey()
60 cv2.destroyAllWindows()

原文地址:https://www.cnblogs.com/Lin-Yi/p/9398514.html

时间: 2024-08-04 05:44:15

python opencv3 轮廓检测的相关文章

python opencv3 直线检测

git:https://github.com/linyi0604/Computer-Vision 1 # coding:utf8 2 3 import cv2 4 import numpy as np 5 6 7 # 读入图像 8 img = cv2.imread("../data/line1.png") 9 # 转为灰度图像 10 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 11 # Canny边缘检测 12 edges = cv2.Ca

用 Python 和 OpenCV 检测图片上的条形码

  用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问题,浏览代码之后,我提供了一些对原始算法的更新和改进. 首先需要留意的是,这个算法并不是对所有条形码有效,但会给你基本的关于应用什么类型的技术的直觉. 假设我们要检测下图中的条形码: 图1:包含条形码的示例图片 现在让我们开始写点代码,新建一个文件,命名为detect_barcode.py,打开并编

OpenCV入门笔记(六) 轮廓检测(Detect Contours)

轮廓(Contours),指的是有相同颜色或者密度,连接所有连续点的一条曲线.检测轮廓的工作对形状分析和物体检测与识别都非常有用. 在轮廓检测之前,首先要对图片进行二值化或者Canny边缘检测.在OpenCV中,寻找的物体是白色的,而背景必须是黑色的,因此图片预处理时必须保证这一点. cv2.findContours函数 Python版示例如下,也可以参考[OpenCV-Python教程(11.轮廓检测)][Contours : Getting Started] contours, hierar

视频中人体轮廓检测

传统的运动人体轮廓检测算法主要有三类:帧间差分法,背景减除法,光流法. 优点                                                                缺点 帧间差分法                运算简单.                                               对于缓慢运动的前景目标容易产生空洞现象. 背景减除法                简单易行.                        

OPENCV图像轮廓检测

前面在图像转换的时候学到canny算子,可以检测出图像的轮廓信息,但是,该算子检测到的轮廓信息还需要我们手动的用眼睛去识别,而实际工程应用中,我们需要得到轮廓的具体数学信息,这就涉及到今天的主题,图像轮廓检测. 一.图像轮廓检测 在opencv中,轮廓对应着一系列的点的集合,opencv提供了一个函数,用来获得这些点的集合 API:void finContours(输入图像,输出轮廓点集,输出向量,int 轮廓检索模式,int 轮廓近似方法,Point 轮廓点的可选偏移量) 注:1.输入图像,是

[转载+原创]Emgu CV on C# (七) —— Emgu CV on 轮廓检测

轮廓检测 对于查找轮廓我们一般要对图像Canny检测.但是对于很特殊的场合其实我们还可以直接对二值化的图像进行轮廓的提取. 关键函数 1. cvFindContours Retrieves contours from the binary image and returns the number of retrieved contours. The pointer firstContour is filled by the function. It will contain pointer to

3D轮廓检测技术讲解

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 今天我们将讨论一种可以检测到3D物体的轮廓方式. 为了使事情变得更清楚,我指的是一个3D对象的轮廓,当光从任意方向落在它上面时. 移动光源可能会相应地改变轮廓. 这完全不同于在图像空

ubuntu python opencv3 cv2.cv2 has no attribute &#39;face&#39; &#39;cv2.face&#39; has no attribute &#39;createEigenFaceRecognizer&#39;

学习opencv过程中遇到错误: 1  cv2.cv2 has no attribute 'face' 经过一顿查,,,各种走弯路 最后一下子就解决了: pip install opencv-python pip install opencv0-contrib-python 这俩装完了就行了 2  'cv2.face' has no attribute 'createEigenFaceRecognizer' 这个错误 查完了人家让你看文档,很无聊, opencv改接口了 现在用 cv2.face

【OpenCV入门指南】第六篇 轮廓检测 下

<OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/863841 上一篇<[OpenCV入门指南]第五篇轮廓检测上>介绍了cvFindContours函数和cvDrawContours函数,并作了一个简单的使用示范.本篇将展示一个实例,让大家对轮廓检测有个更加深入的认识. 代码如下: //图像的轮廓检测下 //By MoreWindows (http://blog.csdn.net/MoreWin