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…



相关文章
|
1月前
|
机器学习/深度学习 前端开发 算法
学习Python需要多久?
【7月更文挑战第6天】学习Python需要多久?
39 5
|
1月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
42 4
|
14天前
|
机器学习/深度学习 开发者 Python
Python 与 R 在机器学习入门中的学习曲线差异
【8月更文第6天】在机器学习领域,Python 和 R 是两种非常流行的编程语言。Python 以其简洁的语法和广泛的社区支持著称,而 R 则以其强大的统计功能和数据分析能力受到青睐。本文将探讨这两种语言在机器学习入门阶段的学习曲线差异,并通过构建一个简单的线性回归模型来比较它们的体验。
37 7
|
12天前
|
JSON API 开发者
Python学习Get方式通过商品 ID请求 获取拼多多商品详情数据接口
拼多多商品详情数据接口服务使开发者或商家能编程获取平台商品详情,涵盖标题、价格、销量等关键信息,助力市场分析与决策。使用前需注册开发者账号并获取API密钥;构造含商品ID等参数的请求URL后发送至API服务器;接口以JSON格式返回数据。应用场景包括商品销售分析、选品、品牌口碑挖掘及竞品分析,为商家提供强大数据支持。
|
11天前
|
算法 数据挖掘 大数据
深入学习Python的性能优化
【8月更文挑战第9天】深入学习Python性能优化涵盖设定明确目标、运用timeit与cProfile等工具诊断瓶颈、优化代码结构与算法、采用并行/并发技术、利用生成器与第三方库等策略。这是一个持续学习的过程,旨在全面提升代码效率与响应速度。
19 1
|
13天前
|
数据采集 人工智能 数据可视化
【2023年电工杯竞赛】B题 人工智能对大学生学习影响的评价 数学建模方案和python代码
本文介绍了2023年电工杯竞赛B题的数学建模方案和Python代码实现,详细阐述了如何分析调查问卷数据,建立评价指标体系,构建数学模型评估人工智能对大学生学习的影响,并提供了数据预处理、特征编码、可视化分析等代码示例。
22 0
【2023年电工杯竞赛】B题 人工智能对大学生学习影响的评价 数学建模方案和python代码
|
21天前
|
机器学习/深度学习 搜索推荐 TensorFlow
使用Python实现深度学习模型:智能教育与个性化学习
【7月更文挑战第29天】 使用Python实现深度学习模型:智能教育与个性化学习
89 9
|
17天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络不再是黑魔法!Python带你一步步拆解,让AI学习看得见
【8月更文挑战第3天】神经网络,曾被视为难以触及的黑魔法,现已在Python的助力下变得平易近人。以TensorFlow或PyTorch为“魔法杖”,仅需几行Python代码即可构建强大的AI模型。从零开始,我们将教导AI识别手写数字,利用经典的MNIST数据集。通过数据加载、预处理至模型训练与评估,每个步骤都如精心编排的舞蹈般清晰可见。随着训练深入,AI逐渐学会辨认每个数字,其学习过程直观展现。这不仅揭示了神经网络的奥秘,更证明了任何人都能借助Python创造AI奇迹,共同探索未来的无限可能。
24 2
|
22天前
|
Ubuntu IDE Linux
Python学习安装 Python
【7月更文挑战第26天】
26 3
|
22天前
|
IDE 数据可视化 安全
Python学习中设置开发环境
【7月更文挑战第26天】
18 2