风格化(Stylization)

引言

风格化的目的是生成绘画或印象派的效果,而不注重写实。事实上,保边去噪的滤波器是风格化的理想选择,因为它可以抽象区域的同时,保持,或增强边缘特性。

给定一个输入图像,滤波后的图像叠加与之对应梯度图像,增强了图像边缘信息,产生了像铅笔画一样的非真实绘制。

步骤

  1. 读入图像
  2. 保边滤波得到一副图层
  3. 滤波后图像的梯度,得到另外一幅图层
  4. 叠加两幅图层

代码

Matlab版

% clear all;
close all;
clc;

% (a) Input photograph
I = imread(‘5.jpg‘);
I = im2double(I);

%% Stylization Examples
sigma_s = 12;
sigma_r = 0.5;

% (b) Filtered with NC (σs=100, σr=0.45).
F_nc = NC(I, sigma_s, sigma_r);

F_gray = rgb2gray(F_nc);
% (c)Edges from the gradient magnitude of (b).
F_edge = imgradient(F_gray);

% (d) Stylized using (b) and (c).
Stylized = zeros(size(I,1),size(I,2),3);
Stylized(:,:,1)  = F_nc(:,:,1) - F_edge;
Stylized(:,:,2)  = F_nc(:,:,2) - F_edge;
Stylized(:,:,3)  = F_nc(:,:,3) - F_edge;

% Show results.
figure, imshow(I); title(‘Input photograph‘);
figure, imshow(F_nc); title(‘Filtered photograph‘);
figure, imshow(Stylized); title(‘Stylized‘);

openCV 3.0中photo模块下面npr.cpp也有相应的源代码:

void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sigma_r)
{
    Mat I = _src.getMat();
    _dst.create(I.size(), CV_8UC3);
    Mat dst = _dst.getMat();

    Mat img = Mat(I.size(),CV_32FC3);
    I.convertTo(img,CV_32FC3,1.0/255.0);

    int h = img.size().height;
    int w = img.size().width;

    Mat res = Mat(h,w,CV_32FC3);
    Mat magnitude = Mat(h,w,CV_32FC1);

    Domain_Filter obj;
    obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER);

    obj.find_magnitude(res,magnitude);

    Mat stylized = Mat(h,w,CV_32FC3);

    vector <Mat> temp;
    split(res,temp);
    multiply(temp[0],magnitude,temp[0]);
    multiply(temp[1],magnitude,temp[1]);
    multiply(temp[2],magnitude,temp[2]);
    merge(temp,stylized);

    stylized.convertTo(dst,CV_8UC3,255);
}

结果

更多阅读

http://www.inf.ufrgs.br/~eslgastal/DomainTransform/ (Domain Transform for Edge-Aware Image and Video Processing)

转载请保留以下信息

作者 日期 联系方式
风吹夏天 2015年5月26日 [email protected]
时间: 2024-08-02 21:47:00

风格化(Stylization)的相关文章

【Paper Reading】Improved Textured Networks: Maximizing quality and diversity in Feed-Forward Stylization and Texture Synthesis

Improved Textured Networks: Maximizing quality and diversity in Feed-Forward Stylization and Texture Synthesis https://arxiv.org/abs/1701.02096v1 本文最主要的贡献有两点: 1. 引入instance normalization 代替 batch normalization 2. 通过使得生产器从Julesz ensemble无偏采样来增加texture

UE4实现风格化渲染(一):UserNormalTranslator工具的使用

最近会在UE4上实现风格化渲染的需求,所以也借机写一下相关的制作教程.对应日系风格化渲染技法来说,关键还是法线的处理. 法线处理以前翻译的资料很多了,所以也不多做解释了,比如下图是最新的UE4上的卡渲游戏[四女神OL] UE4开发四女神的示例详细介绍在这里. http://cgworld.jp/feature/201611-ue4fst2016-4gdss.html 用会Max Script或Python的话,可以很方便的在3dsMax或Maya上实现法线替换和烘培的工具,这里时间关系,还是暂时

干货 | 谈谈最近爆火的德国神经学家的CVPR风格化工作

最近由于一条微博,加上又在知乎热烈地讨论过了[点击阅读原文可访问知乎原帖],于是这群德国计算机神经网络科学家提出的可以让电脑模仿任何画家的风格作画的论文一下子火了!大S和好基友SEM最近也在研究相关的内容,所以在这里就结合各位知乎大神的论点,跟大家分享我们对这篇文章的一些看法以及现在demo的运行方法. 这篇由Leon A. Gatys, Alexander S. Ecker, Matthias Bethge提出的A Neural Algorithm of Artistic Style 原文,目

ASP.NET CORE系列【五】webapi整理以及RESTful风格化

原文:ASP.NET CORE系列[五]webapi整理以及RESTful风格化 介绍 什么是RESTful?  这里不多做赘述,详情请百度! 哈哈,本来还想巴拉巴拉介绍一些webapi, RESTful的, 还是算了,咱们直接上干货!(原因是懒!哈哈) 使用 以前使用过mvc的人对webapi 应该都很熟悉,先看一段熟悉的代码 大伙发现了什么没?跟以往mvc大多数相同,但有些地方不同 ,我们来一起看看有何区别 1.首先SysUsersController上面有一段代码 [Produces("a

他认识和风格的风格化工的环境法国恢复国家和风格化

http://www.songtaste.com/user/12032447/info http://www.songtaste.com/user/12032444/info http://www.songtaste.com/user/12032438/info http://www.songtaste.com/user/12032435/info http://www.songtaste.com/user/12032431/info http://www.songtaste.com/user/

符合规定多风换个角度国际电风格化

人生三大幸事莫过于成长有一对好父母,上学有一位好老师,工作有一位好领导! 根据微博内容了解到,@猫妖安妮的幸运在于,她最新进入的一家公司的领导会手把手的教她,新同事会鼓励她帮助她,每天她都会觉得很开心,让她觉得在"魔都"也会有这样的一片蓝天. http://www.pento.cn/board/29215166 http://www.pento.cn/board/29215167 http://www.pento.cn/board/29215168 http://www.pento.c

Android 风格化的 Toggle Buttons

Android到默认UI比iOS到默认UI在美观程度上还是有一定到差距的,我们希望能够美化UI,并且替换掉系统默认的UI风格,使得程序在使用这些UI的时候都默认使用我们自定义到UI.本文以ToggleButton为例,介绍如何使用,下图是效果图. <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/

风格化刚好东过奉公守法格的东

http://wenda.tianya.cn/question/19jlibfvgeibabo6phjovjqm76bad9o8kqj64 http://wenda.tianya.cn/question/19jlibpo0p5b1l6kdp38hpj12gd0oh87nog69 http://wenda.tianya.cn/question/19jlic2h8rd9ivd232iqlvd4fqke8prj9qgai

发出风格化风格化法国恢复

http://v.qq.com/page/h/6/7/h0150mpjb67.html http://v.qq.com/page/m/2/h/m0150aqm82h.html http://v.qq.com/page/x/r/7/x01502ditr7.html http://v.qq.com/page/v/0/9/v0150ju8809.html http://v.qq.com/page/w/e/t/w0150lo3uet.html http://v.qq.com/page/b/d/2/b01