目录

  • 应用概览
  • 测试代码
  • 效果图
  • 参考引用

应用概览

近期在测试设计的带方位点的圆点特征提取算法与传统的OpenCV的圆点提取算法,在标定应用上精度的差异,但是遇到了一个问题———加工厂商制作实心圆点标定板时搞错需求了,于是我拥有了两块如图所示的带方位点的圆点标定板。。。

除此之外还有一个问题在于,如果我要横向对比两种图案对于标定精度的影响,标定板的摆放姿态需要尽可能一致,因此需要通过图像处理的方式将图中的同心圆环进行填充,得到实心圆点

测试代码

代码为批量处理脚本,处理逻辑是现将图片进行自适应阈值处理,之后提取轮廓,对存在父轮廓的边缘(同心圆内圆)进行填充处理,实现将同心圆转换为实心圆点,该方法可以用在类似需要填充图形内部的需求场景中。

import cv2 as cv
import numpy as np
import os# 输入图像地址
input_data_directory = "./data"
# 输出图像地址
output_data_directory = "./output"array_of_img = []
# 批量文件读入函数
def read_directory(directory_name):for filename in os.listdir(r"./"+directory_name):array_of_img.append(filename)read_directory(input_data_directory)
# 图像处理部分
for filename in array_of_img:img_gray = cv.imread(input_data_directory + '/' + filename, 0)_, thresh = cv.threshold(img_gray, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)contours, hierarchy = cv.findContours(thresh, cv.RETR_CCOMP, 2)# 找到内层轮廓并填充# hierarchy的形状为(1,6,4),使用np.squeeze压缩一维数据,变成(6,4)hierarchy = np.squeeze(hierarchy)for i in range(len(contours)):# 存在父轮廓,说明是里层if (hierarchy[i][3] != -1):# -1表示填充cv.drawContours(img_gray, contours, i, (0, 0, 0), -1)cv.imwrite(output_data_directory + '/' + filename, img_gray)print("转换完成")

效果图

参考引用

  1. 在OpenCV中填充圆圈
  2. python批量读取存储图片

Python OpenCV 将同心圆环填充为实心圆相关推荐

  1. python opencv在图像上画点和圆

    利用 opencv 里自带的 circle() 函数可以绘制以一个点为圆心特定半径的圆,其函数的声明如下: cv2.circle(img, center, radius, color[, thickn ...

  2. 使用Python+OpenCV+dlib为人脸生成口罩

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

  3. 面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩

    来源:深度学习与计算机视觉 本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像. 本文使用OpenCV dlib库生成口罩 ...

  4. [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充

    一.学习目标 了解什么是ROI 了解floodFill的使用方法 如有错误欢迎指出~ 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[pyth ...

  5. python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解

    圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...

  6. 番外3. Python OpenCV 中如何绘制各种图形?

    本系列专栏写作方式 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级.中级.高级知识. 3. Python OpenCV 中如何绘制各种图形? 本篇博客主要分享一下在 P ...

  7. python opencv Intel Realsense 使用滑动条调整图片的曝光率

    # -*- coding: utf-8 -*- """ @File : 200113:测试跟踪条tracebackbar().py @Time : 2020/1/13 9 ...

  8. 【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)

    转载请注明详细地址 本文简单介绍了图像常见几何特征的概念以及求解方法 本文介绍了Python和opencv求解几何特征的常用方法 目录 其他形状外接轮廓的方法可以参考:<OpenCV-Pytho ...

  9. python异或运算怎么算_小强学Python+OpenCV之-1.4.4掩膜mask及位运算(与、或、非、异或)...

    问题引入 在小强学Python+OpenCV之-1.4.2裁剪一节,我们使用的是numpy数组切片功能实现图片区域的裁剪. 那么,如果我们想要裁剪图像中任意形状的区域时,应该怎么办呢? 答案是,使用掩 ...

  10. [python opencv 计算机视觉零基础到实战] 三、numpy与图像编辑

    一.学习目标 了解图片的通道与数组结构 了解使用numpy创建一个图片 了解使用numpy对图片的一般操作方法 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的hell ...

最新文章

  1. Java程序员年薪40W,他1年走了别人5年的路(技术提炼)
  2. mysql 浏览器插件_Chrome浏览器BlazeMeter插件安装图解
  3. Nginx访问VM虚拟机CentOS 7系统与本地Windows系统共享目录403
  4. flink的web ui中五颜六色的方块是什么意思?
  5. tf.layers.dropout
  6. java io 缓存读取_Java 文件IO写入读取四种方法
  7. ElasticSearch模糊查询(中文检索)
  8. 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得
  9. 如何设置任务栏和开始菜单属性中的 分组相似任务栏按钮 的个数
  10. 缓存 负载均衡_使用“针对临时工作负载优化”选项来保存计划缓存存储
  11. dom影像图形成数字地形图_基于MapMatrix的数字正射影像图制作
  12. ios 集成阿里云推送通知的注意点
  13. 做word计算机海报图片,使用word制作宣传海报
  14. 【日常点滴013】python雪球网沪深港美股情爬取
  15. 橡皮擦的英语_小朋友们知道“橡皮擦”用英语该怎么说吗?
  16. 阿里云服务器密码重置
  17. Android 接收和收发短信
  18. 好文:中国Saas蜕变史
  19. 写论文时如何翻译外文文献?
  20. 【Java程序设计】GUI的JTable的一些应用

热门文章

  1. 9个offer,12家公司,35场面试,从微软到谷歌
  2. JS获取手机型号和系统版本
  3. DID会固定年份吗_你了解渐进式DID平行趋势图的几种画法吗?
  4. php显示某年某月某日,C++_C++自定义函数判断某年某月某日是这一年中第几天,本文实例讲述了C++自定义函数 - phpStudy...
  5. 参与流片是一种怎样的体验
  6. ems与nms_告警处理方法、装置、nms、oss及ems的制作方法
  7. 苹果Apple TV+上线了重磅史诗级别科幻作品,这是要挑战Netflix、HBO?
  8. Footprint:Aave VS Compound之战,谁更能脱颖而出?
  9. 云计算的未来畅想(五) -- matrix(终篇)
  10. 谷歌翻译不能用,解决方案