OpenCV实现图像转换为素描效果 您所在的位置:网站首页 把照片转化为素描 OpenCV实现图像转换为素描效果

OpenCV实现图像转换为素描效果

#OpenCV实现图像转换为素描效果| 来源: 网络整理| 查看: 265

OpenCV图像转素描

我们在一些相机APP的功能里会看到有把照片转换为素描效果的,看起来就很高大上的感觉,今天我们也用OpenCV实现一下这个效果。

实现效果

先上一张经典的Lena的图片转换为素描效果的图片,左边是原图的效果,右边就是我们通过OpenCV的几行代码实现的一个素描的效果。

实现流程

微卡智享

图像转为素描的流程其实也挺简单的,一共就是四步即可实现。

#

实现流程

1

图像去色(转为灰度图)

2

图像取反

3

将取反后的图像进行高斯模糊

4

去色后的图像(灰度图)和取反模糊后的图像以混合模式为颜色减淡进行融合

代码实现

微卡智享

新建一个opencvsrctosumiao的项目,配置参见《VS2017配置OpenCV通用属性》

01

图像去色

02

图像取反

实现图像取反可以有三种方式:

遍历像素值直接用255去减 代码语言:javascript复制gray_inverse = Scalar(255, 255, 255) - gray;使用subtract函数 代码语言:javascript复制subtract(Scalar(255, 255, 255), gray, gray_inverse);通地位运算直接取反代码语言:javascript复制gray_inverse = ~gray;

取反后的效果

03

将取反后的图像进行高斯模糊

对取反后的图像我们做一个高斯模糊,上图中的Size(15,15)和后面的两个50的参数可以自己根据实际情况设置,我这边试了几个后觉得这个效果还不错,就采用这两个值了。

高斯模糊后的效果

04

颜色减淡进行融合

上面这行代码也是在网上看到的,实现了颜色减淡的效果,致敬大牛。

颜色减淡效果

完整代码代码语言:javascript复制#include #include using namespace cv; using namespace std; int main(int argc, char** argv) { Mat gray, gray_inverse,dst; Mat src = imread("E:/DCIM/test3.jpg"); if (!src.data) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有