【Opencv实战】素描,要画出感觉,比如像这样画啥啥都好(建议收藏)

469 阅读3分钟

前言

哈喽,大家早上好吖!

最近一直在研究Opencv库,昨天还给大家更新了一期“油画模糊”特效的功能。

Opencv就是一个小宝藏💝,还发现了超多功能,比如像ps的功能中的好多都有,滤镜也可以自己用代码调式出来。​

今天小编给大家写一个素描风格的小程序吧!💖好看超好看,之后这个可能也会出一个慢慢更新的系列,都是讲的一

些“小特效”案例,有案例有实战有讲解的话大家学习起来也更快啦~

正文

一、原理简介

用OpenCV、Python一张RGB颜色的图像经过下面四个步骤就能够生成出一张素描图:

  1. 将RGB图转化为灰度图。

  2. 灰度图进行反色操作。

  3. 对步骤2中的图片进行高斯模糊Gaussian blur。

  4. 将步骤1中的灰度图像和步骤三中的模糊反色图像混合

二、环境准备

本文用到的环境如下👇:

Python3、 Pycharm 、opencv、一些图片的素材大家可以自由选择这里就不展示,等下会给

大家随机找几组效果哈!

第三方库的安装:pip  install +模块名 如安装出现问题可以直接找我私信即可哈

三、效果展示

第一组效果:

第二组效果:

这个缩小了眼睛有点儿怪怪的!要看代码之后的原图还是挺不错的

第三组效果:

四、完整的项目

import cv2, numpy

img = cv2.imread('99.jpg', 1 )
cv2.imshow('img', img)
height = img.shape[0]
width = img.shape[1]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#首先我们需要用opencv将图片读取,生成图片的灰度图并反色。
dst = 255 - gray

dst_gauss = cv2.GaussianBlur(dst, (9, 9), 0)
#利用opencv的高斯模糊对灰度图进行模糊化
a = cv2.divide(dst, dst_gauss, scale=255)
cv2.imshow('a', a)
cv2.imwrite('paint.jpg', a)
cv2.waitKe(0)
#使用opencv的divide方法将灰度图和模糊图融合,并且将所形成的素描风图片保存下来。

小结

嘿嘿,今天这一节课就上到这里结束啦,我们下次再见。想想给大家写写什么内容去啦~~~

源码基地——

私信小编06或者点击这行蓝色字体即可免费获取哈!

🎉往期推荐阅读——

​项目1.0 卡通化头像

【Opencv实战】如何快速Get专属头像?惊艳—女友要的头像终于找到了~

项目1.1 动漫化人物

【突破次元壁】谁说二次元离我们遥远?Python特效火遍全网,关键技术原来是它。

项目1.4 自动车辆检测违章

听说拍人家违章月入十万?那我写了个自动检测车辆是否违章不发财了

项目1.5 AI检测抄袭小脚本

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

🎄文章汇总——

项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在文章汇总哦!!欢迎阅读~)