简述

在Cartoon GAN的实现中提到了这种思想。但是在网上没有找到对应的实现,就自己研究了一波。

处理思路

  • Canny边缘提取
  • 用dilate做膨化,用一个粗颗粒,再用一个细颗粒
  • 粗颗粒的膨化结果用于提取原图像,之后,再做高斯模糊
  • 细颗粒的膨化结果用于定位覆盖掉原图像的结果,将边缘部分贴回去

效果展示

处理前 处理后

代码

import cv2img = cv2.imread('corgi.jpg')
data = (150, 150)
img_copy = img.copy()
imgCanny = cv2.Canny(img, *data)
# 创建矩形结构
g = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
g2 = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
# 膨化处理
# 更细腻
img_dilate = cv2.dilate(imgCanny, g)
# 更粗大
img_dilate2 = cv2.dilate(imgCanny, g2)shape = img_dilate.shape
# 提取
for i in range(shape[0]):for j in range(shape[1]):if img_dilate2[i, j] == 0:  # 二维定位到三维img[i, j] = [0, 0, 0]dst = cv2.GaussianBlur(img, (3, 3), 0, 0, cv2.BORDER_DEFAULT)for i in range(shape[0]):for j in range(shape[1]):if img_dilate[i, j] != 0:  # 二维定位到三维img_copy[i, j] = dst[i, j]cv2.imshow('dst', img_copy)
cv2.imwrite('corgi-edge-blur.png', img_copy)
cv2.waitKey()
cv2.destroyAllWindows()

【opencv】边缘高斯模糊(canny+dilate+GaussianBlur)Python实现相关推荐

  1. OpenCV 坎尼边缘检测器Canny Edge Detector

    OpenCV 拉普拉斯算子Laplace Operator 坎尼边缘检测器Canny Edge Detector 目标 理论 步骤 代码 这个程序做什么? 说明(C ++代码) 结果 坎尼边缘检测器C ...

  2. OpenCV基础入门【C++及python语言】

    OpenCV基础入门[C++语言] OpenCV-Python 中文教程 OpenCV官方教程中文版(For Python) OpenCV2-Python-Tutorials 部分文件参考: http ...

  3. 基于Opencv的数字图像处理技巧(python)

    图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术.又称影像处理.图像处理一般指数字图像处理.数字图像是指用工业相机.摄像机.扫描仪等设备经过拍摄得到的一个大的 ...

  4. 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...

  5. Canny边缘检测算法(python 实现)

    文章目录 最优边缘准则 算法实现步骤 1. 应用高斯滤波来平滑(模糊)图像,目的是去除噪声 2. 计算梯度强度和方向 3. 应用非最大抑制技术NMS来消除边误检 4. 应用双阈值的方法来决定可能的(潜 ...

  6. opencv+Recorder︱OpenCV 中的 Canny 边界检测+轮廓、拉普拉斯变换

    本文来自于段力辉 译<OpenCV-Python 中文教程> 边缘检测是图像处理和计算机视觉中的基本问题,通过标识数字图像中亮度变化明显的点,来捕捉图像属性中的显著变化,包括深度上的不连续 ...

  7. opencv 边缘平滑_基于OpenCV的车道检测实现(一)

    无人驾驶的话题日趋起热,而车道线检测对于无人驾驶的路径规划来讲特别重要.要遵守交通规则,首先的要求便是对车道线检测,而且通过检测车道线可以进一步的检测地面指示标志.进行前碰撞预警策略设计等. 早早就对 ...

  8. opencv 图像边缘检测 Canny边缘检测算法使用

    图解边缘检测 opencv 应用Canny算法进行边缘检测 import cv2 as cv import numpy as npimg = cv.imread('baby_g.jpg', 0) # ...

  9. OpenCV系列之Canny边缘检测 | 十九

    在本章中,我们将学习 Canny边缘检测的概念 OpenCV函数: cv.Canny() 理论 Canny Edge Detection是一种流行的边缘检测算法.它由John F. Canny发明 1 ...

最新文章

  1. python-docx操作
  2. 使用AI画一个冠状病毒
  3. Storm On YARN
  4. linux 修改默认路径吗,linux中vsftp修改默认路径
  5. Modbus RTU 通信应用案例
  6. 跟我学jQuery(二) 初识jQuery
  7. linux 多核线程 调度,通过轻型线程提高多核设备中的Linux实时性能
  8. linux系统汇总的qt,QT 编程总结_Linux编程_Linux公社-Linux系统门户网站
  9. 【转】C++11 标准新特性: 右值引用与转移语义
  10. 兼容input 文件选择_「HTML5」FileAPI 文件操作实战
  11. 射线法判断点在多边形内适用范围_电力行业NDT无损检测技术应用大盘点!
  12. 一文读懂RFID标签和读写器
  13. H5 实现类似QQ消息列表(已读,未读)拖拽点击事件功能
  14. C#学习笔记8 事件
  15. 英语 动画 教学 字母_字母形式在阅读教学中的作用
  16. 用Vue制作图片翻面效果
  17. 3年功能测试经验,面试拿到15k难吗?
  18. Python入门笔记,代码练习——常用内置数据类型【持续更新】
  19. 房租、房价又在涨—房产放松的空间还有多大?
  20. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(4):Cortex-M3指令分类

热门文章

  1. 递归三:变态蛙跳台阶
  2. NodeJS:将指定文件夹内所有文件重命名为英文
  3. 一出好戏不止是部电影,它也正接近你的生活。
  4. Community Server页面布局
  5. loop设备做LVM
  6. 《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
  7. 复制虚拟机网卡eth0变eth1
  8. I/O多路复用——select
  9. 由IP和掩码计算广播地址
  10. 车辆管理系统之开始自己的任务(三)