基于Opencv的图像卡通化

  • 基于Opencv的图像卡通化
    • 铅笔素描效果
    • 国画效果
    • 抽象效果

基于Opencv的图像卡通化

主要工具是高斯滤波器、细节增强滤波器、双边滤波、拉普拉斯滤波器。

铅笔素描效果

将输入图像灰度化后及逆行高斯滤波,其中由于高斯滤波服从正态分布,核数越大、越模糊最后一步是将原始灰度图像除以模糊后的灰度图像。这样可以得出两个图像中每个像素之间的变化率。模糊效果越强,每个像素的值相对于其原点的变化就越大,因此,它使我们的铅笔素描更加清晰。其中第一幅图核数为25,第二幅图核数为75。(领会除法运用在此处的妙处)


import cv2
img=cv2.imread('bird.jpg')
cv2.imshow('bird',img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Blur the image using Gaussian Blur
#高斯核服从正态分布,核数越大,越模糊
gray_blur = cv2.GaussianBlur(gray, (75, 75), 0)
# Convert the image into pencil sketch
cartoon = cv2.divide(gray, gray_blur, scale=250.0)
cv2.imshow('cartoon.jpg',cartoon)
cv2.waitKey()
cv2.destroyAllWindows()

国画效果

国画效果:锐化图像,平滑颜色以及增强边缘效果。
1.将原图像进行中值滤波后进行自适应均值滤波后的边缘图像。
2.将原RGB图像进行基于细节增强滤波器的锐化下图1。(当把细节增强滤波器换为双边滤波,显得更加平滑,下图2)
3.将锐化后的图像与边缘图像进行按位与得到最终效果图。

import cv2
img=cv2.imread('bird.jpg')
cv2.imshow('bird',img)
#convert the image into grayscale image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Blur the grayscale image with median blur中值滤波
gray_blur = cv2.medianBlur(gray, 3)
#Apply adaptive thresholding to detect edges检测图像边缘
edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 9, 9)#自适应均值滤波
#Sharpen the image锐化图像
color = cv2.detailEnhance(img, sigma_s=5, sigma_r=0.5)
cv2.imshow('color',color)
#细节增强函数 sigma_s控制着邻域的大小,该邻域的大小将被加权以替换图像中的像素值。值越高,邻域越大。这样可以使图像更平滑
#:如果要在平滑图像时保留边缘,这很重要。较小的值只会产生非常相似的颜色进行平均(即平滑),而相差很大的颜色将保持不变
#Merge the colors of same images using "edges" as a mask
cartoon = cv2.bitwise_and(color, color, mask=edges)
cv2.imshow('cartoon',cartoon)
cv2.waitKey()
cv2.destroyAllWindows()

抽象效果

拉普拉斯滤波器:通过对象内部的灰度级和图像背景强度来突出对象的边缘

import cv2
img=cv2.imread('bird.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('img.jpg', img )gray = cv2.medianBlur(gray, 3)
edges = cv2.Laplacian(gray, -1, ksize=5)
edges_inv = 255 - edges
dummy, cartoon = cv2.threshold(edges_inv, 0, 255, cv2.THRESH_BINARY)
cv2.imshow('cartoon.jpg', cartoon )
cv2.waitKey()
cv2.destroyAllWindows()

基于Opencv的图像卡通化相关推荐

  1. opencv 图片边缘渐变_基于OpenCV的图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...

  2. OpenCV-Python实战(番外篇)——OpenCV实现图像卡通化

    OpenCV-Python实战(番外篇)--OpenCV实现图像卡通化 前言 图像卡通化 完整代码 更多卡通化效果展示 相关链接 前言 在博文<OpenCV-Python实战(4)--OpenC ...

  3. OpenCV实现图像卡通化

    一.前言 今天介绍一个有趣的demo,结合之前图像空域滤波和边缘检测的知识,实现图像卡通化,通过实现的过程,可以发现几种图像边缘检测和差异和图像滤波的性质. Demo来自<Mastering O ...

  4. python多张照片拼成一张人脸,使用OpenCV实现人脸图像卡通化的示例代码

    引言 通过前面的文章我们已经了解到OpenCV 是一个用于计算机视觉和机器学习的开源 python 库.它主要针对实时计算机视觉和图像处理.它用于对图像执行不同的操作,这些操作使用不同的技术对图像进行 ...

  5. 实战精通OpenCV第一章--基于Android的图片卡通化及肤色改变(三)

    第一章 基于Android的图片卡通化及肤色改变 一.基于Visual Studio的图片卡通化 二.基于Visual Studio的肤色改变 三.Android代码移植 最近由于工作比较忙,很抱歉没 ...

  6. 实战精通OpenCV第一章--基于Android的图片卡通化及肤色改变(二)

    转载请注明出处:https://blog.csdn.net/mymottoissh/article/details/86723580 第一章 基于Android的图片卡通化及肤色改变 一.基于Visu ...

  7. 使用OpenCV实现人脸图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 通过前面的文章我们已经了解到OpenCV 是一个用于计算机视 ...

  8. 实战精通OpenCV第一章--基于Android的图片卡通化及肤色改变(一)

    转载请注明出处:https://blog.csdn.net/mymottoissh/article/details/86709457 本系列博客是基于<Mastering OpenCV with ...

  9. opencv实践项目-图像卡通化

    目录 1.如何使图像卡通画 2.铅笔素描滤波器 3. 细节增强滤波器 4. 双边过滤器 5. 铅笔边缘滤波器 1.如何使图像卡通画 我们通常需要执行两个主要步骤将图像转换为卡通图像:边缘检测和区域平滑 ...

最新文章

  1. 关系数据库范式(1)
  2. springcloud学之前需要掌握什么_学国画之前我们需要准备什么?
  3. Lind.DDD.DynamicModules动态模块化的设计
  4. WCF与现行分布式通讯技术性能对比
  5. spark如何防止内存溢出_Spark 理论基石 —— RDD
  6. 『设计模式』写代码偷懒小技巧,程序开发大智慧--享元模式
  7. mysql数据库备份工具expdb_expdp 备份数据库
  8. IPSEC---动态MAP-VS-静态MAP
  9. 如何用hypermesh生成包含interface的流体网格
  10. 工业机器人云监控与运维方案
  11. OpenProcess()函数
  12. java1.8.0_java jdk官方下载|java jdk v1.8.0 官方免费版-520下载站
  13. 安卓8.0卡刷杜比音效——magisk模块的安装和使用
  14. 秀球技:倒和其他无用
  15. 麒麟3.2安装微软雅黑字体
  16. [Leetcode] 158. Read N Characters Given Read4 II - Call multiple times 解题报告
  17. iOS/iPhone学习系列、代码教程----~~~持续更新中~~~
  18. 在html中ex是什么单位,前端用到的那些单位
  19. 名帖84 米芾 小楷《九歌》
  20. 【计算机网络】网络层——IPv6/IP组播/移动IP

热门文章

  1. Ceph使用---块设备、RGW、CephFS初步使用
  2. PAT 甲级1116 1117 1118 1119 解题报告
  3. 队列的应用--火车车厢重排列
  4. springboot项目部署到Linux服务器
  5. 【华为OD机试真题 Python】统计射击比赛成绩
  6. u深度制作linux启动盘制作工具,U深度U盘启动盘制作工具怎么操作?U深度U盘启动盘制作工具使用...
  7. 联想小新Air13高定黑使用初体验
  8. 基于FFMPEG水印添加---avfilter库
  9. SQL-剔除周六日,节假日,非工作时间
  10. 2007年IT产业回顾:划时代的一年 一个变革的时代