PS 滤镜——素描算法(一)
这个算法结合高斯滤波和图层混合中的颜色减淡模式实现。
可以参考相关博客:
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 滤镜——素描算法(一)的更多相关文章
- PS 滤镜——素描算法(二)
利用另外一种算法完成素描特效的生成. %%% Sketch clc; clear all; Image=imread('4.jpg'); Image=double(Image); [row,col,l ...
- Python: PS 滤镜--素描
本文用 Python 实现 PS 滤镜中的素描特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/386 ...
- OpenCV——PS 滤镜, 浮雕效果
具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...
- OpenCV——PS 滤镜, 曝光过度
算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...
- Python: PS 滤镜--旋涡特效
本文用Python 实现 PS 滤镜的旋涡特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/42215 ...
- Python: PS 滤镜--USM 锐化
本文用 Python 实现 PS 滤镜中的 USM 锐化效果,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...
- Python: PS 滤镜--表面模糊
本文用 Python 实现 PS 滤镜中的表面模糊,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/528 ...
- Python: PS 滤镜--旋转模糊
本文用 Python 实现 PS 滤镜中的旋转模糊,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/392 ...
- Python: PS滤镜--径向模糊
本文用 Python 实现 PS 滤镜中的径向模糊特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/3 ...
随机推荐
- ghmm在 Linux 上安装
ghmm在 Linux 上安装 http://ghmm.sourceforge.net/documentation.html http://www.ghmm.org http://www.comp.l ...
- Java基本语法-----java函数
函数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则称作函数. ...
- 第一行代码阅读笔记---AndroidMainfest.xml分析
按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...
- 03 Button 按钮
按钮 父类: TextView >概念:可以被按,点击 并且执行一个动作 >属性: 在按钮内部的上下左右设置图片: androi ...
- C# 运行时序列化
一. 序列化与反序列的作用 为什么要有序列化呢,考虑下面这种情况,在WINFORM或者更为方便的WPF工程中,当我们进行UI设计时,可以随意的将一个控件剪切/张贴到另外一个地方.操作方便的背后是什么在 ...
- Learn Lua in 15 Minutes
原文地址:http://tylerneylon.com/a/learn-lua/ Learn Lua in 15 Minutes more or less For a more in-depth Lu ...
- Java函数2:计算两个日期相差的天数
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scann ...
- 纯HTML5APP与原生APP的差距在哪?
笔者写过一些纯H5的APP,虽然开发起来的确很快很舒服,但和原生比起来纯H5APP还是有很多问题,主要聚集在以下几个方面: 1.动画 动画有很多种,比如侧边栏菜单的滑入滑出.元素的响应动画.页面切换之 ...
- 在maven中开发Spring需要的jar依赖
在maven中开发Spring需要的jar依赖 <properties> <spring.version>4.0.6.RELEASE</spring.version> ...
- 关于MySQL insert into ... select 的锁情况
摘要: 一直以为"insert into tb select * from tbx" 这样的导入操作是会把tbx表给锁住的,在锁期间是不允许任何操作(保证一致性).看完 ...