python+opencv学习之--提取角点

简介: python+opencv学习之--提取角点

实现提取轮廓的功能,并且绘制出轮廓的重心


import numpy as np

import cv2

from pylab import imshow

from pylab import array

from pylab import plot

from pylab import title

#读取图片

img = cv2.imread('timg.jpeg')

img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转灰度值

#二值化,canny检测

binaryImg = cv2.Canny(img,50,200)

#寻找轮廓

contours,contourstype=cv2.findContours(binaryImg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#查看轮廓数量

-- print (len(contours))

--print (type(contours))

-- print (type(contourstype))

--print ((contourstype))

temp = np.ones(binaryImg.shape,np.uint8)*255

for each in contours:

M = cv2.moments(each)#轮廓的矩
复制代码

(在OpenCV中,可以很方便的计算多边形区域的3阶特征矩,opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。)

if (M['m00']!=0):
    cx = int(M['m10']/M['m00'])#计算重心
    cy = int(M['m01']/M['m00'])
    pos=(cx,cy)
    print(pos)
cv2.circle(temp,pos, 4, (0, 0, 0), 4)#绘制轮廓的中心点
(img为源图像指针;第一个参数是圆心坐标;第二个参数是为圆的半径;第三是为设定圆的颜色,规则根据B(蓝)G(绿)R(红)第四个s参数如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充)
复制代码


#画出轮廓:temp是白色幕布,contours是轮廓,-1表示全画,然后是颜色,厚度

cv2.drawContours(temp,contours,-1,(0,255,0),3)

(在图像中绘制外部和内部的轮廓;其中当当thickness >= 0 时,绘制轮廓线;否则填充由轮廓包围的部分。。)

cv2.imshow("contours",temp)

cv2.waitKey(0)

cv2.destroyAllWindows()

关于drawContours参考blog.csdn.net/fulva/artic…关于画圆函数参考blog.csdn.net/yangfengman…



相关文章
|
7天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
11 1
|
10天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
17 1
|
3天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
3天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
3天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
3天前
|
数据采集 Python
python学习9-字符串
python学习9-字符串
|
3天前
|
Python
python学习10-函数
python学习10-函数
|
3天前
|
存储 索引 Python
python学习7-元组
python学习7-元组
|
3天前
|
Python
python学习8-集合
python学习8-集合
|
3天前
|
Python
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环