opencv教程(基于python)----图象轮廓(二)

这一节继续上面的内容。

轮廓特征

轮廓近似

轮廓近似是用更少的点组成轮廓的方法,特别是在已知轮廓不规则的情况下,用他来近似。新轮廓的点数由我们设定的精确度来确定。具体使用的是Douglas—Peucker算法。这里的效果是cv2.areLength()函数和cv2.approxPolyDP()函数。

cv2.approxPolyDP(curve, epsilon, closed, approxCurve=None)

第一个参数是图象的轮廓;第二个参数是精度;最后一个参数显示图像是否闭合。不得不说opencv虽然是一个开源的,但是里面的函数越来越像是黑箱的,说实话Douglas—Peucker算法我没细看。这种东西还是等编程能力上去了在看吧。

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('C:/Users/dell/Desktop/u12.jpg')
imgray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh=cv2.threshold(imgray,127,255,0)
image,coutours,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cnt=coutours[1]
epsilon=0.001*cv2.arcLength(cnt,True)
approx=cv2.approxPolyDP(cnt,epsilon,True)
im=cv2.drawContours(img,approx,-1,(0,0,255),5)
cv2.imshow('image',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

一般来说epsil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值