Python OpenCV 将同心圆环填充为实心圆
目录
- 应用概览
- 测试代码
- 效果图
- 参考引用
应用概览
近期在测试设计的带方位点的圆点特征提取算法与传统的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("转换完成")
效果图
参考引用
- 在OpenCV中填充圆圈
- python批量读取存储图片
Python OpenCV 将同心圆环填充为实心圆相关推荐
- python opencv在图像上画点和圆
利用 opencv 里自带的 circle() 函数可以绘制以一个点为圆心特定半径的圆,其函数的声明如下: cv2.circle(img, center, radius, color[, thickn ...
- 使用Python+OpenCV+dlib为人脸生成口罩
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- 面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩
来源:深度学习与计算机视觉 本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像. 本文使用OpenCV dlib库生成口罩 ...
- [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
一.学习目标 了解什么是ROI 了解floodFill的使用方法 如有错误欢迎指出~ 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[pyth ...
- python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解
圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...
- 番外3. Python OpenCV 中如何绘制各种图形?
本系列专栏写作方式 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级.中级.高级知识. 3. Python OpenCV 中如何绘制各种图形? 本篇博客主要分享一下在 P ...
- python opencv Intel Realsense 使用滑动条调整图片的曝光率
# -*- coding: utf-8 -*- """ @File : 200113:测试跟踪条tracebackbar().py @Time : 2020/1/13 9 ...
- 【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)
转载请注明详细地址 本文简单介绍了图像常见几何特征的概念以及求解方法 本文介绍了Python和opencv求解几何特征的常用方法 目录 其他形状外接轮廓的方法可以参考:<OpenCV-Pytho ...
- python异或运算怎么算_小强学Python+OpenCV之-1.4.4掩膜mask及位运算(与、或、非、异或)...
问题引入 在小强学Python+OpenCV之-1.4.2裁剪一节,我们使用的是numpy数组切片功能实现图片区域的裁剪. 那么,如果我们想要裁剪图像中任意形状的区域时,应该怎么办呢? 答案是,使用掩 ...
- [python opencv 计算机视觉零基础到实战] 三、numpy与图像编辑
一.学习目标 了解图片的通道与数组结构 了解使用numpy创建一个图片 了解使用numpy对图片的一般操作方法 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的hell ...
最新文章
- ASP .NET Core MVC Entity Framework 旧书交易网站
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
- 如何把Office365的更新从半年通道改成月度通道
- gzip android,怎么在Android系统中使用gzip进行数据传递
- bkwin设置文本控件为多行模式
- 在Web浏览器中显示Spring应用程序启动的进度
- 被吹得天花乱坠的无服务器架构,究竟是什么?
- NodeJs express自定义中间件
- python分词统计词频_基于结巴分词做的全文分词统计词频小脚本
- 【AI面试题】Kmeams算法流程以及Kmeans++介绍
- 【牛客练习赛57:D】回文串(回文树求前/后缀最长回文子串)
- Camera 图像处理原理分析- 色彩篇 一
- 大型网站之网站静态化(综合篇)
- STM32定时器产生指定个数脉冲
- 比对软件Blast,Blast+,Diamond如何选
- android基于蓝牙实验,基于Android系统蓝牙开发的探究与实现.pdf
- 摇一摇周边:微信是这样连接线下商户的
- windows 下 redis服务经常自动关闭
- 微分方程求通解推导-----专升本
- 怎样用一台手机做自媒体?
热门文章
- Suspending Methods【暂停方法队列说明】
- win7计算机搜不到无线网,怎么解决win7笔记本搜索不到WiFi
- 为什么手机网速太慢_为什么手机连上WiFi网速很慢
- 一小时快速建立数据分析平台
- 用python画蜡笔小新_用python画的蜡笔小新
- 大数据处理应遵循的四大原则
- gfsk调制频谱_ASK,OOK,FSK,GFSK是什么
- TrueCrypt 使用经验[1]:关于加密算法和加密盘的类型
- java公交路线查询微信小程序源码
- 学计算机的怎么防辐射,电脑机箱如何防辐射----给大家科普一下