import cv2
img = cv2.imread( 'E:\A.jpeg' )
cv2.imshow( 'img', img ) gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY )
ret, binary = cv2.threshold( gray, 127, 255, cv2.THRESH_BINARY ) contours, hierarchy = cv2.findContours( binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE )
cv2.drawContours( img, contours, -1, ( 160, 240, 120 ), 3 ) cv2.imshow( 'img1', img )
cv2.waitKey( 0 )
cv2.destroyAllWindows()

cv2.findContours()函数:

參数:

參1(是寻找轮廓的图像)

參2(表示轮廓的检索模式)有四种:

(1).cv2.RETR_EXTERNAL 仅仅检測外轮廓

(2).cv2.RETR_LIST 检測的轮廓不建立等级关系

(3).cv2.RETR_CCOMP 建立两个等级的轮廓,

上面的一层为外边界。

里面的一层为内孔的边界信息。

假设内孔内另一个连通物体,

这个物体的边界也在顶层

(4).cv2.RETR_TREE 建立一个等级树结构的轮廓



參3(method为轮廓的近似办法):

(1)cv2.CHAIN_APPROX_NONE 存储全部的轮廓点,

相邻的两个点的像素位置差不超过1,

即max(abs(x1-x2),abs(y2-y1))==1

(2).cv2.CHAIN_APPROX_SIMPLE 压缩水平方向。

垂直方向,对角线方向的元素,

仅仅保留该方向的终点坐标。

比如一个矩形轮廓仅仅需4个点来保存轮廓信息

(3).cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS

使用teh-Chinl chain 近似算法



返回值:

值1:

是轮廓本身。

值2:

每条轮廓相应的属性。

OpenCV -- 获取轮廓照片的更多相关文章

  1. Python OpenCV4获取轮廓最大内切圆和外接圆

    为了方便讲解,我们先来创建一个多边形做演示 第一步:创建图像,并绘制一个六边形.代码和生成图像如下: # Create an image r = 100 src = np.zeros((4*r, 4* ...

  2. OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle

    千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...

  3. OpenCV获取IP摄像头视频

    从开源中国博客搬来,合并博客 实验室做一个智能小车的小项目,期间涉及到在PC端处理小车摄像头的视频.这里先用安卓手机代替一下进行试验.大致流程就是手机摄像头获取视频,开启一个IP摄像头服务软件,在局域 ...

  4. 【python+opencv】轮廓发现

    python+opencv---轮廓发现 轮廓发现---是基于图像边缘提取的基础寻找对象轮廓的方法, 所有边缘提取的阈值选定会影响最终轮廓发现的结果. 介绍两种API使用: -cv.findConto ...

  5. 【opencv】轮廓相关

    IplImage* contours_rect; IplImage* contours; CvMemStorage* countours_storage=NULL; if(contours_rect= ...

  6. 学习opencv跟轮廓相关的

    查找轮廓 轮廓到底是什么?一个轮廓一般对应一系列的点,也就是图像中的一条曲线.表示的方法可能根据不同情况而有所不同.有多重方法可以表示曲线.在openCV中一般用序列来存储轮廓信息.序列中的每一个元素 ...

  7. OpenCV 矩形轮廓检测

    转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 基础介绍 OpenCV里提取目 ...

  8. OpenCV 查找轮廓

    本文将结合实例代码,介绍 OpenCV 如何查找轮廓.获取边界框. 代码: contours.py OpenCV 提供了 findContours 函数查找轮廓,需要以二值化图像作为输入.并指定些选项 ...

  9. mono for android 获取手机照片或拍照并裁剪保存

    axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

随机推荐

  1. Android:MD5加密

    /** * @author gongchaobin * * MD5加密 * * @version 2013-8-22 */ public class MD5Util { // 用来将字节转换成 16 ...

  2. APP-PAY-06153 When Trying To Open Organization Definition Form (文档 ID 1323165.1)

    In this Document Symptoms Cause Solution Applies to: Oracle Inventory Management - Version 11.5.10.2 ...

  3. hadoop 原理: 浅析Hadoop文件格式

    Hadoop 作为MR 的开源实现,一直以动态运行解析文件格式并获得比MPP数据库快上几倍的装载速度为优势.不过,MPP数据库社区也一直批评Hadoop由于文件格式并非 为特定目的而建,因此序列化和反 ...

  4. [OpenSource]浅谈.Net和Java互相调用的三种方式

    在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份额,不管谁对谁错,Java和.Net是目前应用开发的两个 ...

  5. sql server 修改表的默认值, 需要先删除约束条件

    ---------增加是否发布订单 if not exists(select 1 from syscolumns where name='iIsRelease' and id=OBJECT_ID('M ...

  6. HDU 1061

    #include<stdio.h> #include<string.h> int a[10]; int main() { int T,n,i,k,temp,b,t; scanf ...

  7. ios 设备震动

    使得iOS设备震动有两个方法,均是传入kSystemSoundID_Vibrate常量. AudioServicesPlayAlertSound(kSystemSoundID_Vibrate); Au ...

  8. kafka的安装和使用

    简单说kafka是一个高吞吐的分部式消息系统,并且提供了持久化. kafka的架构 • producer:消息生存者• consumer:消息消费者• broker:kafka集群的server,负责 ...

  9. bzoj 1878 [SDOI2009]HH的项链(离线处理+BIT)

    Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...

  10. NOIP2015 运输计划(二分+LCA+差分)

    4326: NOIP2015 运输计划 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 308  Solved: 208[Submit][Status] ...