python截取图片中的圆形区域

# coding=utf-8import pathlib
import timeimport cv2
import numpy as npdef detect_circle_single(source_file, target_file):"""识别图像中的圆形并裁切出相应的矩形保存到目标文件中source_file:源文件target_file:生成后的文件"""bias = 20img = cv2.imread(source_file)h, w, _ = img.shapegray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)  # 灰度图像gray = cv2.GaussianBlur(gray, (5, 5), 5)  # 模糊图像转低分辨率# cv2.imshow("fdga",gray)circles1 = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 10, param1=100, param2=100)try:  # 如果上一步没有检测到。执行try内容,就会报错。可以修改尝试看下。circles = circles1[0, :, :]  # 提取为二维except TypeError:print('未发现圆形物体!!', source_file)else:x, y, r = np.uint16(np.around(circles))[0]  # 四舍五入x0 = 0 if x < r+bias else x - r - biasy0 = 0 if y < r+bias else y - r - biasx1 = x + r + biasy1 = y + r + biasx1 = x1 if x1 < w else wy1 = y1 if y1 < h else himg = img[y0:y1, x0:x1]#cv2.circle(img, (x, y), r, (0, 0, 255), 5)print(target_file)cv2.imwrite(target_file, img)if __name__ == "__main__":source_dir = r"img"target_dir = r"img_circle"count = 0files_iter = pathlib.Path(source_dir).iterdir()a = time.time()for file in files_iter:# print(file)detect_circle_single(str(file), target_dir + "/" + file.name)count += 1# detect_circle_single(source_dir+"/test.jpg", target_dir + "/test.jpg")b = time.time()print("消耗时间:", b - a, "总数目:", count)# detect_circle_single()"""
dp,用来检测圆心的累加器图像的分辨率于输入图像之比的倒数,且此参数允许创建一个比输入图像分辨率低的累加器。上述文字不好理解的话,来看例子吧。例如,如果dp= 1时,累加器和输入图像具有相同的分辨率。如果dp=2,累加器便有输入图像一半那么大的宽度和高度。
minDist,为霍夫变换检测到的圆的圆心之间的最小距离,即让我们的算法能明显区分的两个不同圆之间的最小距离。这个参数如果太小的话,多个相邻的圆可能被错误地检测成了一个重合的圆。反之,这个参数设置太大的话,某些圆就不能被检测出来了。
param1,有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示传递给canny边缘检测算子的高阈值,而低阈值为高阈值的一半。
param2,也有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示在检测阶段圆心的累加器阈值。它越小的话,就可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就更加接近完美的圆形了。
minRadius,默认值0,表示圆半径的最小值。
maxRadius,也有默认值0,表示圆半径的最大值
"""

python截取图片中的圆形区域相关推荐

  1. Matlab实现对图片中的圆形区域标记并计数

    Matlab对图片中的圆形区域标记并计数 Part 1 Part 2 Part 1 我们拿到的是这样一张卫星图 要求对中间部分的几个大油罐(白色圆形区域)进行计数,就是下图中间的部分(图片被裁剪后) ...

  2. python 截取图片中的一部分并且复制到另一张图片中 (任意角度旋转)

    目的:截取左面均压环,并且对截取的区域进行旋转和复制 进行数据增强 import PIL.Image as img import osIMG = 'C:\\Users\\Ilearn\\Desktop ...

  3. python半径为3圆形区域边界曲线_OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓...

    本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...

  4. Unity 截取摄像头圆形区域并保存 By Opencv

    评论区有人知道的可以插个眼告诉我一下: 使用Shader 两图片alpah相乘也可以做到只显示摄像头圆形区域,但是我不知道怎么保存这个圆形区域 使用 Mask,也可以做到只显示摄像头圆形区域,但是我不 ...

  5. 识别图片中的圆形并求所有圆形的平均半径

    识别图片中的圆形并求所有圆形的平均半径 github主页:https://github.com/Taot-chen 思路:  1)对图片进行预处理:  2)利用opencv,借助霍夫梯度法识别图像中的 ...

  6. matlab手动抠取圆形区域_图像中提取圆形子区域matlab code

    图像中提取圆形区域子图像 在图像中提取矩形区域非常容易,应用冒号表达式即可: 例如: IMG_Out=IMG_In(300:400,400:700); 就可以轻松提取到图像中100*300大小矩形区域 ...

  7. 圆形区域函数可视化和泊松方程求解

    针对泊松方程,我们设定圆形区域求解 − Δ u = f , x ∈ Ω = B ( 0 , 1 ) -\Delta u=f,x \in \Omega=B(0,1) −Δu=

  8. 通过OpenCv的HoughCircles函数获取图片中的圆形

    话不多说,代码如下: int main(){Mat srcImage,grayImage;/*加载图片*/srcImage = imread(path);/*判断加载是否成功*/if(srcImage ...

  9. python 截取一周(或者N周)的日期

    本文主要讲述使用python 截取一周(或者N周)的日期 #首先导入datetime模块 import datetime#取现在的时间 d = datetime.datetime.now() def ...

最新文章

  1. 论文笔记 《Maxout Networks》 《Network In Network》
  2. mysql的连表查询_MySQL_连表查询
  3. matlab中y=x(:,ones(1,3))的含义解读
  4. 带你玩转Pandas
  5. OO第三次博客总结作业
  6. 两个序列的中位数c语言,小白在线求教 用归并排序实现查找两个有序序列的中位数...
  7. 在Ubuntu 18.04系统中使用Netplan工具配置网络
  8. python爬虫反爬策略_用Python语言做爬虫有哪些策略可以对抗反爬虫?
  9. Java+jquery+jsonp实现跨域
  10. paip.python ide eric5-5.3.7 安装以及建立项目使用 最佳实践
  11. JAVA设计模式之模板方法模式-场景、例子、深入
  12. c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.
  13. CentOS7-1810 系统DNS服务器BIND软件配置说明
  14. 怎么把IE地址栏搜索引擎变为百度搜索,而不安装百度搜霸等插件呢?
  15. 定义一个Traingle类用来刻画“三角形”,要求:Trangle类具有类型为double的三个边以及周长、面积属性,具有一个boolean型的属性,该属性的值为true时代表三个边属性能构成一个三角
  16. 跟着团子学SAP PS:项目模版搭建 CJ91/CJ92/CJ93/CN01/CN02/CN03/CN11/CN12/CN13
  17. matlab背景色为白色
  18. Oracle ADR(Automatic Diagnostic Repository)介绍
  19. 戴尔服务器安装独显后无显示,在T630服务器上安装了独立显卡,重启后液晶面板显示“pci1318 fatal error on bus 128d”,然后黑屏重启,该问题如何解决阿。...
  20. “在朋友圈晒了五年加班,才知道老板早就把我屏蔽了”

热门文章

  1. 4G图传移动视频取证-可视安全生产监管-常见问题解答FAQ
  2. 商代王后妇好、玉器及特展相关资料整理
  3. 武汉科技大学计算机生命与科学周海,湖北双胞胎周海周洋:为了母亲,一个放弃清华,一人放弃中科院...
  4. 第一节 安卓自定义轮播图的制作
  5. linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3
  6. 2013年各大小IT公司待遇,绝对真实,一线数据!(初版)
  7. tesseract 安装及使用
  8. 仿射密码之加解密及破解
  9. 流水灯c语言程序tm,51单片机LED流水灯课程设计任务书+论文
  10. 冒泡排序的实现(Java)