基于轮廓提取的 图像填充法
基于轮廓提取的 图像填充法
一、前言
在设计裸眼3d视频生成算法的时候涉及到了这一点,遂记录一下
版本1,效果如下:
设计思路:一开始想直接用水漫法填充的时候,很容易发现下面的问题,就是抹少了,或抹多了,所以我们采用先转轮廓图,然后再用水漫法进行填充的方法。
- 可以看到确实是好了一些
二、解决方案
1、轮廓提取的方案
采用CVPR2021开源的pidinet项目
总体识别效果,我经过试毒还算可以,配好环境后,在配下参数与新建一个文件放图片,就可以了
算是印象比较好的项目,很人性
2、图像填充法
我采用了Opencv floodFill算法,也就是常说的水漫填充法
然后,在加一个鼠标监听即可
3、图像填充法设计程序如下
import cv2 as cv
import numpy as npdef fill_image(image,x,y):copyImage = image.copy() # 复制原图像h, w = image.shape[:2] # 读取图像的宽高mask = np.zeros([h+2, w+2], np.uint8) # 新建图像矩阵 +2是官方函数要求#(0,80) 起始点,(0,100,255) 蓝色 ,(100,100,50)棕色 ,(50,50,50) 浅黑cv.floodFill(copyImage, mask, (x,y), (255, 255, 255), (100, 100, 50), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE)cv.namedWindow("EdgeFill", cv.WINDOW_NORMAL)cv.imshow("EdgeFill", copyImage)return copyImagedef on_mouse(event,x,y,flags,param):global img,srcif event==cv.EVENT_LBUTTONDOWN:img=fill_image(img,x,y)if event==cv.EVENT_RBUTTONDOWN:img=src.copy()cv.namedWindow("EdgeFill", cv.WINDOW_NORMAL)cv.imshow("EdgeFill", img)def main():global img,srcsrcPath=input("请输入要动态填充的处理后的轮廓图片的绝对地址:")print("使用说明:点击左键则开始填充,点击右键则复原")src = cv.imread(srcPath)img=src.copy()cv.namedWindow("EdgeFill", 0)cv.imshow("EdgeFill", img)cv.setMouseCallback("EdgeFill",on_mouse)cv.waitKey(0)cv.destroyAllWindows()if __name__=="__main__":main()
基于轮廓提取的 图像填充法相关推荐
- 轮廓提取之滚球法、凹包算法
提示:本文章主要介绍轮廓提取算法------滚球法的运用,可用于提取点云等二维.三维数据的轮廓,以及代码框架设计. 文章目录 前言 一.基于二维点数据的模型轮廓提取算法 1.1 适用场景 1.2 问题 ...
- 边缘检测、Hough变换、轮廓提取、种子填充、轮廓跟踪
转自:http://blog.sina.com.cn/s/blog_6c083cdd0100nm4s.html 7.1 边沿检测 我们给出一个模板 和一幅图象 .不难发现原图中左边暗,右边亮,中间存在 ...
- 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- opencv 轮廓提取文字
基于轮廓提取图像文字 内容: 使用你上一篇博客图像透视变换的结果,将A4纸上的线条单独识别出来. 输入图像: 输出图像: Python使用opencv实现 实验环境:Window下使用Pyt ...
- matlab 图像 轮廓 填充颜色,基于Matlab的图形轮廓提取及填充
计算机工程应用技术 本栏目责任编辑: 贾薇薇 电脑知识与技术 基于 Matlab 的图形轮廓提取及填充 井艾斌,柳青,孟祥增 (山东师范大学, 山东 济南 250014) 摘要: 提取图形的形状特征是 ...
- 基于深度学习的图像边缘和轮廓提取
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读:边缘和轮廓的提取是一个非常棘手的工作,细节也许就会被过强的图 ...
- 图像轮廓提取算法(Opencv基于C++实现)
Opencv图像轮廓提取 0. 实现结果如下: 1. 打开图像代码 2. 轮廓提取函数 3. 代码实现 本文主要实现了图像的轮廓提取,首先先给出直观的轮廓实现结果: 0. 实现结果如下: 1. 打开图 ...
- 资深大佬:基于深度学习的图像边缘和轮廓提取方法介绍
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 边缘和轮廓的提取是一个非常棘手 ...
最新文章
- CPU,GPU,GPGPU
- IT兄弟连 JavaWeb教程 jQuery中其他AJAX支持的函数
- 【原】Mac下统计任意文件夹中代码行数的工具——cloc
- php提交注册表单,php用户注册表单验证
- linux 环境下配置ftp服务器
- 【收集】47种常见的浏览器兼容性问题
- Java学习笔记_身份验证机制
- 复数抽象数据类型C语言,采用C/C++语言如何实现复数抽象数据类型Complex
- Opencv级联分类器实现人脸识别
- RocketMQ3.2.6安装部署及调用
- 阿帕奇服务器搭建网站,使用Apache搭建Web网站服务器
- 服务器显示屏 超出工作频率范围,Win10显示器显示超出工作频率范围解决方法
- 陶哲轩实分析 习题6.3.3
- markdown提示错误HTML Rendering Error: An error occurred with the HTML rendering component
- 手机墙刷APP下载量骗推广费 10人因涉嫌合同诈骗被捕
- Tecplot中用excel表格绘制xy图的一点理解
- 介绍解决方案、项目和项
- 使用CH341 I2C连接北醒TF系列I2C模式 Python例程
- HM-3200: Tetramesh(四面体网格)
- 五 、Elasticsearch分词器