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画圆相关推荐

  1. python画圆简单代码-python实现画圆功能

    本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...

  2. 画圆怎么编程python,python实现画圆功能

    本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...

  3. python中画圆的代码_python实现画圆功能

    本文实例为大家分享了python实现画圆功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...

  4. 利用opencv画圆

    利用opencv画圆 使用到的是opencv库 import cv2 as cv 其中我们为了方便演示将圆心设为图片正中心,opencv用来显示所画图片. 画圆用到的是opencv中的circle函数 ...

  5. python函数画圆_python圆形_python圆形绘制_python圆形函数 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天上课老师布置了一道pthon的课题,关键是和数学有关数学又是我的弱项头有点小 ...

  6. python中画圆的代码_Python编程12:Python画图之turtle库如何画圆

    #少儿编程# 从上一篇开始,我将和小朋友们一起用Python语言来画图.turtle库是Python语言中一个很流行的绘制图像的库,上一篇我们已经知道如何使用turtle库,如何使用turtle库的函 ...

  7. OpenCV 画圆circle、画椭圆ellipse

    画圆 circle. 画椭圆 ellipse 1. 函数定义 1.1 cicle 1.2 验证circle中参数shift的实际作用 1.3 ellipse 1.3.1 第一种方法 1.3.2 第二种 ...

  8. 利用Python OpenCV进行圆孔检测、计算半径、圆心到四边距离

    先上最终检测视频: OpenCV实时检测圆孔 本文重在实操,就不赘述背景意义等内容. 给定问题:假如有一个配件,此时需要检测配件上的圆孔坐标.半径.个数.圆孔到配件四边的距离. 由于没有实物,就在纸上 ...

  9. python中画圆的代码_Python使用matplotlib绘制圆形代码实例

    1.定义一个画圆的函数import numpy as np import matplotlib.pyplot as plt def plot_circle(center=(3, 3),r=2): x ...

最新文章

  1. C# 语句中的各种单例模式代码
  2. C++实现全局鼠标、键盘消息hook,支持事件
  3. Emmet插件:HTML/CSS代码快速编写神器
  4. stm32f302 can通讯_福特福克斯发动机无法启动,诊断电脑还通讯不了怎么修?
  5. 关于Modernizr的使用
  6. 未来的C#之只读引用与结构体
  7. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构区别...
  8. matlab实验与系统信号实验二,信号与系统上机实验-matlab(第一第二次实验课)new
  9. 【计算机网络】简单网络管理协议 SNMP
  10. C语言float数据类型介绍、示例和应用经验
  11. 你知道“借鸡生蛋”吗?学会这个方法,没钱没人脉你也可以创业
  12. Leetcode每日一题 面试题56 - I.数组中数字出现的次数
  13. 右键菜单,用VSCode打开文件和文件夹
  14. JavaWeb笔记——JSPThymeleaf
  15. 单片机测试开发板用什么软件,怎么知道单片机开发板的好坏
  16. win10 21H1无线网卡AX200刷Killer AX1650x 无图精华贴(引用自研)
  17. [Python-turtle]正弦定理能擦出多漂亮的火花?【1】
  18. 最适合程序员转行的10大职业
  19. 超级准确的Android/JAVA面试题合集,背会你就10k!
  20. 二维码怎么制作?手把手教你制作生成

热门文章

  1. 【按键精灵源码分享】遍历图片在屏幕上出现的所有坐标脚本源码
  2. dnfpkf正在连接服务器,dnf怎么复制角色进PK服_关于PKF以及复制PKF的相关讲解_好特教程...
  3. 从这11个维度下手,你可以快速发现宝宝的天赋
  4. 详细了解操作系统,进程调度策略,有哪几种?
  5. markdown官方说明书
  6. 字符串截取的几种方式
  7. 开放java平台允许访问_饿了么开放平台接入(2)——使用Java对接店铺
  8. python如何设置画布开始位置_只要十分钟,Python绘图神器Turtle了解一下?
  9. 于千万人之中, 你是匠人!
  10. 计算机专业男生好撩吗,什么专业的男生最难撩?看到最后我哭了…