opencv学习——利用轮廓画矩阵、外接圆、拟合曲线
2017-10-30 20:55
701 查看
import cv2 import numpy as np img = cv2.imread('images/th.jpg') ret,thresh = cv2.threshold(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY),127,255,0) _,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)#得到轮廓信息 cnt = contours[0]#取第一条轮廓 #计算轮廓的直边界矩阵 x,y,w,h = cv2.boundingRect(cnt) cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) #计算轮廓的旋转矩阵 rect = cv2.minAreaRect(cnt) box = cv2.boxPoints(rect) box = np.int0(box) cv2.drawContours(img,[box],0,(0,0,255),2) #计算轮廓外接圆 (rx,ry),radius = cv2.minEnclosingCircle(cnt) center = (int(rx),int(ry)) radius = int(radius) cv2.circle(img,center,radius,(255,0,0),2) #计算轮廓外接椭圆 ellipse = cv2.fitEllipse(cnt) cv2.ellipse(img,ellipse,(125,125,255),5) ##轮廓拟合曲线 rows,cols = img.shape[:2] [vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01) lefty = int((-x*vy/vx) + y) righty = int(((cols-x)*vy/vx)+y) cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2) cv2.imshow('lunkuo1',img) cv2.waitKey(0) cv2.destroyAllWindows() cv2.waitKey(0) cv2.waitKey(0) cv2.waitKey(0) cv2.waitKey(0)
相关文章推荐
- opencv——利用轮廓信息画斜矩形、外接圆、拟合直线等
- OPENNI学习实践-利用openni和opencv提取人的轮廓
- opencv学习笔记,利用contourArea和arcLength检测物体的轮廓面积和周长
- 【OpenCV学习笔记】二十九、轮廓特征属性及应用(六)——外接圆等
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作
- 我的OpenCV学习笔记(19):检测轮廓,直线,圆以及直线拟合
- OpenCV学习之椭圆曲线拟合
- 【OpenCV学习】矩阵cvInitMatHeader和cvCreateMat
- opencv学习_16(CvMat矩阵结构以及矩阵数据访问)
- opencv学习_9 (轮廓提取)
- 【OpenCV学习笔记】二十五、轮廓查找与绘制(二)访问轮廓中每个点
- 【OpenCV学习笔记】三十、轮廓特征属性及应用(七)—位置关系及轮廓匹配
- ROS学习笔记(二):利用opencv将本地图片转换成ROS格式
- 【OpenCV学习笔记】二十六、轮廓特征属性及应用(三)——凸包
- 利用最小二乘法拟合任意次函数曲线(C#)
- 学习opencv跟轮廓相关的
- opencv中利用轮廓构建连通树
- OpenCV学习——一个多维数组(矩阵)和一个一维,但是包含高维数据的数组之间的区别
- Python OpenCV学习笔记之:图像轮廓处理
- opencv学习心得(六)新版本绘制外形轮廓