python+opencv轮廓检测代码解析
首先大家可以对OpenCV有个初步的了解,可以参考:简单了解OpenCV
轮廓(Contours),指的是有相同颜色或者密度,连接所有连续点的一条曲线。检测轮廓的工作对形状分析和物体检测与识别都非常有用。
在轮廓检测之前,首先要对图片进行二值化或者Canny边缘检测。在OpenCV中,寻找的物体是白色的,而背景必须是黑色的,因此图片预处理时必须保证这一点。
import cv2 #读入图片 img = cv2.imread("1.png") # 必须先转化成灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINAEY) # 寻找轮廓 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 画出轮廓,-1,表示所有轮廓,画笔颜色为(0, 255, 0),即Green,粗细为3 cv2.drawContours(img, contours, -1, (0, 255, 0), 3) # 显示图片 cv2.namedWindow("Contours", cv2.NORMAL_WINDOW) cv2.imshow("Contours", img) # 等待键盘输入 cv2.waitKey(0) cv2.destroyAllWindows()
总结
本文实例涉及对图片的一些简单处理,比如图片的读取,灰度显示,二值化等,大家可以参考。
以上就是本文关于python+opencv轮廓检测代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
OpenCV-Python实现轮廓检测实例分析
python+opencv实现的简单人脸识别代码示例
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
相关推荐
-
Python+OpenCV人脸检测原理及示例详解
关于opencv OpenCV 是 Intel 开源计算机视觉库 (Computer Version) .它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 C 函数的跨平台的中.高层 API .它不依赖于其它的外部库 -- 尽管也可以使用某些外部库. OpenCV 对非商业应用和商业应用都是免费 的.同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(graph
-
python opencv检测目标颜色的实例讲解
实例如下所示: # -*- coding:utf-8 -*- __author__ = 'kingking' __version__ = '1.0' __date__ = '14/07/2017' import cv2 import numpy as np import time if __name__ == '__main__': Img = cv2.imread('example.png')#读入一幅图像 kernel_2 = np.ones((2,2),np.uint8)#2x2的卷积核
-
python调用opencv实现猫脸检测功能
Python 小猫检测,通过调用opencv自带的猫脸检测的分类器进行检测. 分类器有两个:haarcascade_frontalcatface.xml和 haarcascade_frontalcatface_extended.xml.可以在opencv的安装目录下找到 D:\Program Files\OPENCV320\opencv\sources\data\haarcascades 小猫检测代码为: 1. 直接读取图片调用 import cv2 image = cv2.imread("ca
-
Python3.6.0+opencv3.3.0人脸检测示例
网上有很多关于Python+opencv人脸检测的例子,并大都附有源程序.但是在实际使用时依然会遇到这样或者那样的问题,在这里给出常见的两种问题及其解决方法. 先给出源代码:(如下) import cv2 import numpy as np cv2.namedWindow("test") cap=cv2.VideoCapture(0) success,frame=cap.read() classifier=cv2.CascadeClassifier("haarcascade
-
python中使用OpenCV进行人脸检测的例子
OpenCV的人脸检测功能在一般场合还是不错的.而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码. 写代码之前应该先安装python-opencv: 复制代码 代码如下: $ sudo apt-get install python-opencv 具体原理就不多说了,可以参考一下这篇文章.直接上源码. 复制代码 代码如下: #!/usr/bin/python# -*- coding: UTF-8 -*- # face_detect.py # Face De
-
python版opencv摄像头人脸实时检测方法
OpenCV版本3.3.0,注意模型文件的路径要改成自己所安装的opencv的模型文件的路径,路径不对就会报错,一般在opencv-3.3.0/data/haarcascades 路径下 import numpy as np import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) while True: ret,img = ca
-
python结合opencv实现人脸检测与跟踪
模式识别课上老师留了个实验,在VC++环境下利用OpenCV库编程实现人脸检测与跟踪. 然后就开始下载opencv和vs2012,再然后,配置了好几次还是配置不成功,这里不得不吐槽下微软,软件做这么大,这么难用真的好吗? 于是就尝试了一下使用python完成实验任务,大概过程就是这样子的: 首先,配置运行环境: 下载opencv和python的比较新的版本,推荐opencv2.4.X和python2.7.X. 直接去官网下载就ok了,python安装时一路next就行,下载的opencv.exe
-
Python基于OpenCV实现视频的人脸检测
本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys import logging as log import datetime as dt from time import sleep cascPath = "haarcascade_frontalface_default.xml" faceCascade = cv2.CascadeCla
-
OpenCV-Python实现轮廓检测实例分析
相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV检测并绘制轮廓. 提示: 转载请详细注明原作者及出处,谢谢! 本文介绍在OpenCV-Python中检测并绘制轮廓的方法. 本文不介详细的理论知识,读者可从其他资料中获取相应的背景知识.笔者推荐清华大学出版社的<图像处理与计算机视觉算法及应用(第2版)>. 轮廓检测 轮廓检测也是图像处理中经常用到的.Ope
-
Python+OpenCV目标跟踪实现基本的运动检测
目标跟踪是对摄像头视频中的移动目标进行定位的过程,有着非常广泛的应用.实时目标跟踪是许多计算机视觉应用的重要任务,如监控.基于感知的用户界面.增强现实.基于对象的视频压缩以及辅助驾驶等. 有很多实现视频目标跟踪的方法,当跟踪所有移动目标时,帧之间的差异会变的有用:当跟踪视频中移动的手时,基于皮肤颜色的均值漂移方法是最好的解决方案:当知道跟踪对象的一方面时,模板匹配是不错的技术. 本文代码是做一个基本的运动检测 考虑的是"背景帧"与其它帧之间的差异 这种方法检测结果还是挺不错的,但是需要
随机推荐
- Mootools 1.2教程 设置和获取样式表属性
- 浅谈document.write()输出样式
- Python实现栈的方法
- linux使用管道命令执行ps获取cpu与内存占用率
- 基于jQuery选择器之表单对象属性筛选选择器的实例
- Javascript 面向对象 对象(Object)
- JavaScript学习小结(一)——JavaScript入门基础
- 基于vue实现swipe分页组件实例
- Xcode8以及iOS10适配等常见问题汇总(整理篇)
- 王纯业的Python学习笔记 下载
- Swift实现Selection Sort选择排序算法的实例讲解
- 分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
- Android开发使用Drawable绘制圆角与圆形图案功能示例
- Zen Coding css,html缩写替换大观 快速写出html,css
- 详解Linux下Nginx+Tomcat整合的安装与配置
- Ubuntu 如何建立Matlab快捷方式
- Android2.3实现SD卡与U盘自动挂载的方法
- 80端口被占用 Apache启动失败的解决方法
- 让apache也支持asp环境的方法
- 在ASP.NET 2.0中操作数据之十二:在GridView控件中使用TemplateField