Python OpenCV画圆
Python OpenCV画圆
PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除
在图片中检测圆,并进行标注
#!/usr/bin/python
# -*- coding: UTF-8 -*-import cv2# 加载图片
img = cv2.imread('C:\\Users\\abc\\Desktop\\1.jpg')
cv2.imshow('1', img)# 模糊降噪
img1 = cv2.blur(img, (5, 5)) #(5,5)数值越大,越模糊;前者数值>后者数值为水平方向模糊,否则为垂直模糊
cv2.imshow('2', img1)# 转化至灰度照片
img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
cv2.imshow('3', img2)# canny边缘检测
canny = cv2.Canny(img, 20, 40)
cv2.imshow('4', canny)# 霍夫变换圆检测
# img2必须为灰度图像
# 40:圆心与圆心间的最短距离,太小检测出很多圆,太大又会漏掉一些圆的检测
# 30:检测的圆的最小半径
# 50:检测的圆的最大半径
circles = cv2.HoughCircles(img2, cv2.HOUGH_GRADIENT, 1, 40, param1=40, param2=20, minRadius=30, maxRadius=50)
#[[[221.5 195.5 48.1]
# [602.5 340.5 47. ]
# [219.5 486.5 47.4]
# [153.5 340.5 46.7]
# [528.5 187.5 47.2]
# [371.5 125.5 46.7]
# [378.5 547.5 47. ]
# [532.5 502.5 47.1]]]
print(circles) # [221.5 195.5 48.1] 分别是圆心坐标(x,y)和半径
print(len(circles[0])) # 检测出的圆的个数 8个# 把检测出的圆进行标注
for circle in circles[0]:# 圆心坐标x = int(circle[0])y = int(circle[1])# 圆的半径r = int(circle[2])# (255,0,0):蓝色,用指定颜色标注# 1:正数为空心圆,复数为实心圆# 8:线条类型(0,4,8)# 0:网上的解释“圆心坐标和半径的小数点位数”并不懂,实际操作的时候,发现不能为负,值越大,画的圆越小,而且所画圆越偏离至左上角,得请大神指导了img = cv2.circle(img, (x, y), r, (255, 0, 0), 1, 8, 0) # 画圆img = cv2.circle(img, (x, y), 1, (255, 0, 0), 1, 8, 0) # 圆心其实就是一个半径很小的圆
cv2.imshow('5', img)# 任意键退出
cv2.waitKey(0)
cv2.destroyAllWindows()
从百度图片上下载的图片,如有侵权请告知删除
模糊降噪后:
转至灰度照片:
对原照片进行Canny检测:
画圆:
Python OpenCV画圆相关推荐
- python画圆简单代码-python实现画圆功能
本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...
- 画圆怎么编程python,python实现画圆功能
本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...
- python中画圆的代码_python实现画圆功能
本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...
- 利用opencv画圆
利用opencv画圆 使用到的是opencv库 import cv2 as cv 其中我们为了方便演示将圆心设为图片正中心,opencv用来显示所画图片. 画圆用到的是opencv中的circle函数 ...
- python函数画圆_python圆形_python圆形绘制_python圆形函数 - 云+社区 - 腾讯云
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天上课老师布置了一道pthon的课题,关键是和数学有关数学又是我的弱项头有点小 ...
- python中画圆的代码_Python编程12:Python画图之turtle库如何画圆
#少儿编程# 从上一篇开始,我将和小朋友们一起用Python语言来画图.turtle库是Python语言中一个很流行的绘制图像的库,上一篇我们已经知道如何使用turtle库,如何使用turtle库的函 ...
- OpenCV 画圆circle、画椭圆ellipse
画圆 circle. 画椭圆 ellipse 1. 函数定义 1.1 cicle 1.2 验证circle中参数shift的实际作用 1.3 ellipse 1.3.1 第一种方法 1.3.2 第二种 ...
- 利用Python OpenCV进行圆孔检测、计算半径、圆心到四边距离
先上最终检测视频: OpenCV实时检测圆孔 本文重在实操,就不赘述背景意义等内容. 给定问题:假如有一个配件,此时需要检测配件上的圆孔坐标.半径.个数.圆孔到配件四边的距离. 由于没有实物,就在纸上 ...
- python中画圆的代码_Python使用matplotlib绘制圆形代码实例
1.定义一个画圆的函数import numpy as np import matplotlib.pyplot as plt def plot_circle(center=(3, 3),r=2): x ...
最新文章
- C# 语句中的各种单例模式代码
- C++实现全局鼠标、键盘消息hook,支持事件
- Emmet插件:HTML/CSS代码快速编写神器
- stm32f302 can通讯_福特福克斯发动机无法启动,诊断电脑还通讯不了怎么修?
- 关于Modernizr的使用
- 未来的C#之只读引用与结构体
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构区别...
- matlab实验与系统信号实验二,信号与系统上机实验-matlab(第一第二次实验课)new
- 【计算机网络】简单网络管理协议 SNMP
- C语言float数据类型介绍、示例和应用经验
- 你知道“借鸡生蛋”吗?学会这个方法,没钱没人脉你也可以创业
- Leetcode每日一题 面试题56 - I.数组中数字出现的次数
- 右键菜单,用VSCode打开文件和文件夹
- JavaWeb笔记——JSPThymeleaf
- 单片机测试开发板用什么软件,怎么知道单片机开发板的好坏
- win10 21H1无线网卡AX200刷Killer AX1650x 无图精华贴(引用自研)
- [Python-turtle]正弦定理能擦出多漂亮的火花?【1】
- 最适合程序员转行的10大职业
- 超级准确的Android/JAVA面试题合集,背会你就10k!
- 二维码怎么制作?手把手教你制作生成
热门文章
- 【按键精灵源码分享】遍历图片在屏幕上出现的所有坐标脚本源码
- dnfpkf正在连接服务器,dnf怎么复制角色进PK服_关于PKF以及复制PKF的相关讲解_好特教程...
- 从这11个维度下手,你可以快速发现宝宝的天赋
- 详细了解操作系统,进程调度策略,有哪几种?
- markdown官方说明书
- 字符串截取的几种方式
- 开放java平台允许访问_饿了么开放平台接入(2)——使用Java对接店铺
- python如何设置画布开始位置_只要十分钟,Python绘图神器Turtle了解一下?
- 于千万人之中, 你是匠人!
- 计算机专业男生好撩吗,什么专业的男生最难撩?看到最后我哭了…