这个算法结合高斯滤波和图层混合中的颜色减淡模式实现。

可以参考相关博客:

http://blog.csdn.net/wsfdl/article/details/7610634

本文增加了一点调色,使得最终的素描效果可以不只是黑白,可以呈现不同的底色。

% % % % % 将图像转换成黑白颜色 

% % % % % 复制图像,并对复制后的图像反相

% % % % % 将复制后的图像做高斯模糊 

% % % % % 将模糊后的图像与原图像以颜色减淡模式混合

% % % % % 设置一个底色层

% % % % % 做素描 



clc;

clear all;

addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');

Image=imread('9.jpg');

Image=double(Image)/255;



    I=(Image(:,:,1) + Image(:,:,2) + Image(:,:,3))/3;

    I_invert=1-I;

    F_size=20;

    F_gaussian = fspecial('gaussian',F_size,F_size/6);  

    I_gaussian = imfilter(I_invert,F_gaussian,'conv'); 

   

    delta=0.001;

    I_Dodge=(I+delta)./(1-I_gaussian+delta);

    

    Max_value=max(I_Dodge(:));

    [row, col]=size(I);

    Threshold=0.95;

    for i=1:row

        for j=1:col

            if(I_Dodge(i,j)>Threshold)

                I_Dodge(i,j)=Threshold+I_Dodge(i,j)/Max_value*(1-Threshold);

            end

        end

    end

               

    Image_Dodge(:,:,1)=I_Dodge;

    Image_Dodge(:,:,2)=I_Dodge;

    Image_Dodge(:,:,3)=I_Dodge;

    %%% figure, imshow(Image_Dodge);

    

    Base_layer=Image_Dodge;

    Base_layer(:,:,1)=210/255;

    Base_layer(:,:,2)=225/255;

    Base_layer(:,:,3)=105/255;

    

    alpha=0.7;

    Image1=alpha*Image_Dodge+(1-alpha)*Base_layer;

    R=Image1(:,:,1);

    G=Image1(:,:,2);

    B=Image1(:,:,3);

    %%% figure, imshow(Image1);

    

    Image3=Image_Dodge.*Image1;

    figure, imshow(Image3);

    

   

   

    原图

效果图

效果图

PS 滤镜——素描算法(一)的更多相关文章

  1. PS 滤镜——素描算法(二)

    利用另外一种算法完成素描特效的生成. %%% Sketch clc; clear all; Image=imread('4.jpg'); Image=double(Image); [row,col,l ...

  2. Python: PS 滤镜--素描

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

  3. OpenCV——PS 滤镜, 浮雕效果

    具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...

  4. OpenCV——PS 滤镜, 曝光过度

    算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...

  5. Python: PS 滤镜--旋涡特效

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

  6. Python: PS 滤镜--USM 锐化

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

  7. Python: PS 滤镜--表面模糊

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

  8. Python: PS 滤镜--旋转模糊

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

  9. Python: PS滤镜--径向模糊

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

随机推荐

  1. Android更新UI的几种方法

    在Android开发过程中,常需要更新界面的UI.比如网络请求操作.一些耗时操作都不能放在UI线程中运行的,需要放在子线程,而子线程又不能更新UI界面,这是我们需要引入一个Handler,消息处理机制 ...

  2. SQL 数据库语言分析总结(三)

    这次介绍通过mysql-WorkBench这个工具来管理操作数据库. 创建和删除数据库 1.点击创建数据库按钮 2.选中后右键,出现drop schema一项,这个用来删除. 设置默认数据库 选中右键 ...

  3. Spark技术内幕:Master的故障恢复

    Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源码实现  详细阐述了使用ZK实现的Master的HA,那么Master是如何快速故障恢复的呢? 处于 ...

  4. 最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)

    ===================================================== 最简单的基于libRTMP的示例系列文章列表: 最简单的基于librtmp的示例:接收(RT ...

  5. Fetch XML and ConditionExpression operators

    https://msdynamicscrmblog.wordpress.com/2013/05/10/fetch-xml-and-conditionexpression-operators-using ...

  6. J2EE进阶(四)Spring配置文件详解

    J2EE进阶(四)Spring配置文件详解 前言 Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程 ...

  7. 【VSTS 日志 15/11/18】 – 插件应用市场,RM,包管理器等

    [小编]从今天开始,我将在这个博客上连载Visual Studio Team Service的定期更新.VSTS是Team Foundation Server 的在线版本,微软每3周会对这个服务进行更 ...

  8. 精通CSS+DIV网页样式与布局--页面和浏览器元素

    在页面和浏览器中,除了文字.图片.表格.表单等,还有很多各种各样的元素,在上篇博文中,小编主要简单的介绍了一下在CSS中如何设置表格和表单,今天小编主要简单介绍一下丰富的超链接特效.鼠标特效.页面滚动 ...

  9. 小试ImageMagik——使用篇

    ===================================================== ImageMagick的使用和开发的文章: 小试ImageMagik--使用篇 小试Imag ...

  10. JSON 的数据转换格式(DataTable或DataSet) -善良公社项目

    这两天在使用JqueryEasyUI框架绑定数据并实现自动分页时,由于框架的限制需要使用Json数据的来传递与获取数据: JSON的全称是JavaScript Object Notation, 是一种 ...