基于轮廓提取的 图像填充法

一、前言

在设计裸眼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 适用场景 1.2 问题 ...

  2. 边缘检测、Hough变换、轮廓提取、种子填充、轮廓跟踪

    转自:http://blog.sina.com.cn/s/blog_6c083cdd0100nm4s.html 7.1 边沿检测 我们给出一个模板 和一幅图象 .不难发现原图中左边暗,右边亮,中间存在 ...

  3. 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  4. 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  5. opencv 轮廓提取文字

    基于轮廓提取图像文字 内容: 使用你上一篇博客图像透视变换的结果,将A4纸上的线条单独识别出来.  输入图像:    输出图像:  Python使用opencv实现 实验环境:Window下使用Pyt ...

  6. matlab 图像 轮廓 填充颜色,基于Matlab的图形轮廓提取及填充

    计算机工程应用技术 本栏目责任编辑: 贾薇薇 电脑知识与技术 基于 Matlab 的图形轮廓提取及填充 井艾斌,柳青,孟祥增 (山东师范大学, 山东 济南 250014) 摘要: 提取图形的形状特征是 ...

  7. 基于深度学习的图像边缘和轮廓提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读:边缘和轮廓的提取是一个非常棘手的工作,细节也许就会被过强的图 ...

  8. 图像轮廓提取算法(Opencv基于C++实现)

    Opencv图像轮廓提取 0. 实现结果如下: 1. 打开图像代码 2. 轮廓提取函数 3. 代码实现 本文主要实现了图像的轮廓提取,首先先给出直观的轮廓实现结果: 0. 实现结果如下: 1. 打开图 ...

  9. 资深大佬:基于深度学习的图像边缘和轮廓提取方法介绍

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 边缘和轮廓的提取是一个非常棘手 ...

最新文章

  1. CPU,GPU,GPGPU
  2. IT兄弟连 JavaWeb教程 jQuery中其他AJAX支持的函数
  3. 【原】Mac下统计任意文件夹中代码行数的工具——cloc
  4. php提交注册表单,php用户注册表单验证
  5. linux 环境下配置ftp服务器
  6. 【收集】47种常见的浏览器兼容性问题
  7. Java学习笔记_身份验证机制
  8. 复数抽象数据类型C语言,采用C/C++语言如何实现复数抽象数据类型Complex
  9. Opencv级联分类器实现人脸识别
  10. RocketMQ3.2.6安装部署及调用
  11. 阿帕奇服务器搭建网站,使用Apache搭建Web网站服务器
  12. 服务器显示屏 超出工作频率范围,Win10显示器显示超出工作频率范围解决方法
  13. 陶哲轩实分析 习题6.3.3
  14. markdown提示错误HTML Rendering Error: An error occurred with the HTML rendering component
  15. 手机墙刷APP下载量骗推广费 10人因涉嫌合同诈骗被捕
  16. Tecplot中用excel表格绘制xy图的一点理解
  17. 介绍解决方案、项目和项
  18. 使用CH341 I2C连接北醒TF系列I2C模式 Python例程
  19. HM-3200: Tetramesh(四面体网格)
  20. 五 、Elasticsearch分词器

热门文章

  1. 程序员怎么快速接手一个项目-接手项目指南
  2. 读懂Oracle执行计划(一)
  3. 【Linux】SSH免密登录配置
  4. Python课设实验 之 爬虫应用——校园网搜索引擎(使用bs4进行数据分析.)
  5. 关于iview弹窗组件的问题
  6. intent总结 Android
  7. 大蒜稻提取大蒜素和多肽导入功能性食品 国稻种芯农业大健康
  8. MT【163】运动是相对的
  9. 都在说大数据获客,大数据是如何获客的?
  10. 微票务v15.8.4演唱会 票务 现场活动