素描

将彩色图片转换成素描的方法有多种,本文采用的是模拟ps彩色图片转为素描图片打印的过程。算法的原理流程如下:

  • 1、去色;
  • 2、复制去色图层,并且反色;关于反色可以参考芒果额另一篇文章opencv滤镜-反向滤镜;
  • 3、对反色图像进行高斯模糊;
  • 4、模糊后的图像叠加模式选择颜色减淡效果。

减淡公式:C =MINA+(A×B)/(255−B),255A+(A×B)/(255−B),255,其中C为混合结果,A为去色后的像素点,B为高斯模糊后的像素点。

图 1:原图

代码实现

// drawing-filter.cpp : 素描滤镜
// @mango#include <iostream>
#include <opencv2/opencv.hpp>
#include<cmath>int main()
{cv::Mat img = cv::imread("fruit.jpg");if (img.empty()){std::cout << "Failed to read the image!" << std::endl;return -1;}//1、去色cv::Mat gray(img.size(), CV_8UC3);for (size_t i = 0; i < img.rows; i++){for (size_t j = 0; j < img.cols; j++){int max = std::max(std::max(img.at<cv::Vec3b>(i, j)[0], img.at<cv::Vec3b>(i, j)[1]),img.at<cv::Vec3b>(i, j)[2]);int min = std::min(std::min(img.at<cv::Vec3b>(i, j)[0], img.at<cv::Vec3b>(i, j)[1]),img.at<cv::Vec3b>(i, j)[2]);for (size_t k = 0; k < 3; k++){gray.at<cv::Vec3b>(i, j)[k] = (max + min) / 2;}}}//2、复制去色图层,并且反色cv::Mat gray_revesal(img.size(), CV_8UC3);for (size_t i = 0; i < gray.rows; i++){for (size_t j = 0; j < gray.cols; j++){for (size_t k = 0; k < 3; k++){gray_revesal.at<cv::Vec3b>(i, j)[k] = 255 - gray.at<cv::Vec3b>(i, j)[k];}}}//3、对反色图像进行高斯模糊;cv::GaussianBlur(gray_revesal, gray_revesal, cv::Size(7, 7), 0);//4、模糊后的图像叠加模式选择颜色减淡效果。// 减淡公式:C =MIN( A +(A×B)/(255-B),255),其中C为混合结果,A为去色后的像素点,B为高斯模糊后的像素点。cv::Mat result(gray.size(), CV_8UC3);for (size_t i = 0; i < gray.rows; i++){for (size_t j = 0; j < gray.cols; j++){for (size_t k = 0; k < 3; k++){int a = gray.at<cv::Vec3b>(i, j)[k];int b = gray_revesal.at<cv::Vec3b>(i, j)[k];int c = std::min(a + (a * b) / (255 - b), 255);result.at<cv::Vec3b>(i, j)[k] = c;}}}cv::imshow("素描效果", result);cv::waitKey(0);return 0;
}

图 2:素描效果


本文由芒果浩明发布,转载请注明来源。
本文链接:https://mangoroom.cn/opencv/drawing-filter.html

opencv滤镜-素描相关推荐

  1. photoshop图像滤镜——素描算法(含matlab与C代码)

    二.photoshop图像滤镜--素描算法 素描的算法,网络上有多种,但是效果并不是特别理想.熟悉photoshop的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步操作:1.去色:2.复制去色图层 ...

  2. matlab实现photoshop,photoshop图像滤镜——素描算法(含matlab代码)

    二.photoshop图像滤镜--素描算法 素描的算法,网络上有多种,但是效果并不是特别理想.熟悉photoshop的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步操作:1.去色:2.复制去色图层 ...

  3. photoshop图像滤镜——素描算法(含matlab代码)

    二.photoshop图像滤镜--素描算法 素描的算法,网络上有多种,但是效果并不是特别理想.熟悉photoshop的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步操作:1.去色:2.复制去色图层 ...

  4. 素描滤镜c语言算法,python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现).pdf...

    python opencv 图图像像处处理理(素素描描..怀怀旧旧..光光照照..流流年年..滤滤镜镜 原原理理及及实实现现) 这篇文章主要介绍了python 基于opencv对图像进行各种处理,帮助 ...

  5. Python: PS 滤镜--素描

    本文用 Python 实现 PS 滤镜中的素描特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/386 ...

  6. opencv滤镜-二值化实现黑白滤镜

    黑白滤镜 黑白滤镜非常简单,顾名思义就是图像只有黑色与白色,这实际上就是图像的二值化.实现的原理也非常地简单,设定一个阈值,假设为128,判断每个像素点的灰度值,大于128设为255(对应白色),小于 ...

  7. Opencv实现素描的坤坤打篮球

    蔡蔡子相信大家都很熟悉,他擅长唱.跳.Rap还有篮球!今天,就让我们用Opencv将蔡老师的篮球教学视频以素描的形式呈现出来. 1.安装Python的Opencv 首先我们装上Python版本的Ope ...

  8. Java + OpenCV 实现素描特效(JavaCV)

    一.效果展示 二.完整代码 package com.biubiu.example;import org.opencv.core.Core; import org.opencv.core.CvType; ...

  9. opencv滤镜-浮雕雕刻特效

    浮雕和雕刻 浮雕 浮雕的算法为,用当前像素点的前一个像素点灰度值减去后一个像素点的灰度值,所得结果加上128作为当前像素点的灰度值.原理的公式为 current(i, j) = current(j+1 ...

最新文章

  1. flask教程之创建第一个flask应用
  2. java list 移除_java 中List删除实例详解
  3. 正则只能出现特定字符_python正则表达式的简单使用总结
  4. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)...
  5. 2013汇总计算 广联达gcl_广联达图形算量GCL2013整体操作流程图文教程详解
  6. kotlin android 镜像,【54】Kotlin android Anko 神兵利器
  7. jmeter之使用代理录制脚本
  8. linux中Python3 引入CV2报错
  9. SpringAOP简单案例
  10. 如何为水晶报表rpt文件添加数据连接
  11. “分享到微信”的官方SDK和文档中的坑。。。
  12. 2023 爱蜗影视双端源码 附搭建教程
  13. 15、JVM监控及诊断工具-GUI篇
  14. git分支管理和git提交规范
  15. Linux mysql数据库修改密码
  16. 第15讲:Python列表对象的反转与排序
  17. 常微分方程数值解法(1)
  18. 通达信l2接口如何获取?
  19. 20181201 周六 日记
  20. may be a diary?

热门文章

  1. c51单片机万年历模拟,12864LCD屏显示实时温度与时间
  2. uniapp 微信小程序 map自定义气泡customCallout
  3. FileSystemMonitor 文件系统监控工具
  4. 2021-07-112021年中式烹调师(初级)模拟考试题及中式烹调师(初级)实操考试视频
  5. NLP入门之——Word2Vec词向量Skip-Gram模型代码实现(Pytorch版)
  6. 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
  7. note-Linux大棚命令百篇1 Shell基础及工具篇
  8. Windows 下TSI721驱动软件使用
  9. 局域网远程桌面工具推荐
  10. sketchup 图片转模型_紫天学习星球教学:如何在SU里把JPG图片变成三维模型