数字图像处理特效中彩色墨水效果的设计与实现

先来看两张对比图,首先是原图。

下面是处理后的效果,其实下图看起来已经不再像是一张拍摄的照片了,更像是手工绘制的。

其实除了对于边缘的描绘外,显然对色彩也需要进行适当处理。

应该还可以有改进的空间,但是毕竟算法的实现方式非常的简单,而且毕竟体现了处理此类问题所应该考虑的基本思想。

下面是我基于MAGICHOUSE平台用C++实现的代码。

函数调用部分

SeaFun::InkSketch(our_image_buffer,temp_imageBuffer,X_image,Y_image);

for(int n=0; n<sum; n+=4)
{
        temp_imageBuffer[n] = temp_imageBuffer[n]>0 ? our_image_buffer[n]:temp_imageBuffer[n];
        temp_imageBuffer[n+1] = temp_imageBuffer[n+1]>0 ? our_image_buffer[n+1]:temp_imageBuffer[n+1];
        temp_imageBuffer[n+2] = temp_imageBuffer[n+2]>0 ? our_image_buffer[n+2]:temp_imageBuffer[n+2];
}

实现部分

static void InkSketch(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
    {
        BYTE** imageBuf0 = CreatImage(image0, w, h);
        BYTE** imageBuf1 = CreatImage(image1, w, h);

double scale=2;
        int templt[25]={
             -1,  -1,  -1,  -1, -1,
             -1,  -1,  -1,  -1, -1,
             -1,  -1,  30,  -1, -1,
             -1,  -1,  -1,  -1, -1,
             -1,  -1,  -5,  -1, -1
        };

int x,y;
        int a;
        
        for(y=2; y<h-2; y++)
        for(x=2; x<w-2; x++)
        {
            a=TempltExcute(imageBuf0,w,h,templt,5,x,y);
            a*= scale;
            a = a>255?255:a;    
            a = a<0?0:a;
            SetPixel2(imageBuf1,x,y,a);
        }

free(imageBuf0);
        free(imageBuf1);
    }

时间: 2024-10-07 05:23:10

数字图像处理特效中彩色墨水效果的设计与实现的相关文章

MATLAB数字图像处理(一)基础操作和傅立叶变换

数字图像处理是一门集计算机科学.光学.数学.物理学等多学科的综合科学.随着计算机科学的发展,数字图像处理技术取得了巨大的进展,呈现出强大的生命力,已经在多种领域取得了大量的应用,推动了社会的发展.其中,遥感领域中,对于影像数据的处理均基于数字图像处理的技术.而遥感影像数据作为地理信息科学的重要数据源,如何从中获取有用的信息,是地理信息数据处理中重要的内容. MATLAB作为数学领域应用最广泛的一种软件,集成了对于图片处理的函数和功能,成为了处理数字图像问题的佼佼者.其出众的计算能力和简便的绘图能

网页设计中手风琴效果的20个最佳实践

在这篇文章中,分享一组网页设计中手风琴效果的20个最佳实践.当你想在有限的页面空间内展示多个内容片段的时候,手风琴(Accordion)效果就显得非常有用,它可以帮助你以对用户非常友好的方式实现多个内容片段之间的切换. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 十分惊艳的8个 HTML5 & JavaScript 特效

数字图像处理技术在TWaver可视化中的应用

数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.常用的图像处理方法有图像增强.复原.编码.压缩等,数字图像处理应用领域非常广泛.具体关于数字图像处理的介绍可以参考书籍<冈萨雷斯 数字图像处理>. TWaver作为可视化的利器,如果在展示网元的时候,融入图像处理技术,将会对网元图标的显示增加了灵活性,是一件非常有意思的事情.那么我们不妨来试试,如何将图像处理技术融入进来. 首先我们重写一个网元CN

数字图像处理之python篇四:图像中的像素访问

前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作.如果只是简单的操作还可以,但是如果操作稍微复杂一些,就比较吃力了.因此,通常我们加载完图片后,都是把图片转换成矩阵来进行更加复杂的操作. python中利用numpy库和scipy库来进行各种数据操作和科学计算.我们可以通过pip来直接安装这两个库 pip install numpy pip install scipy 以后,只要是在python中进行数字图像处理,我们都需要导入这些包: fr

数字图像处理 简单介绍

 数字图像处理发展概况 数字图像处理发展概况数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们開始利用计算机来处理图形和图像信息.数字图像处理作为一门学科大约形成于20世纪60年代初期.早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的.图像处理中,输入的是质量低的图像,输出的是改善质量后的图像

结合实例与代码谈数字图像处理都研究什么?

图像处理(以及机器视觉)在学校里是一个很大的研究方向,很多研究生.博士生都在导师的带领下从事着这方面的研究.另外,就工作而言,也确实有很多这方面的岗位和机会虚位以待.而且这种情势也越来越凸显.那么图像处理到底都研究哪些问题,今天我们就来谈一谈.图像处理的话题其实非常非常广,外延很深远,新的话题还在不断涌现.下面给出的12个大的方向,系我认为可以看成是基础性领域的部分,而且它们之间还互有交叉 1.图像的灰度调节 图像的灰度直方图.线性变换.非线性变换(包括对数变换.幂次变换.指数变换等).灰度拉伸

《数字图像处理原理与实践(MATLAB版)》一书之代码Part8

本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part8,辑录该书第375至第415页之代码,供有需要读者下载研究使用.至此全书代码发布已经接近尾声,希望这些源码能够对有需要的读者有所帮助.代码执行结果请参见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MATLAB版)>一书代码发布的说明 http://blog.csdn.net/baimafujinji/article/details/40987807 P385-1 function y

数字图像处理之直方图均衡

直方图均衡化的原理在这里就不赘述了,网上有多此类的博文,也可以参考冈萨雷斯的<数字图像处理>(第三版)一书中的第三章中的相关介绍; 这里演示一下直方图均衡化的效果: 原图像如下: 经过直方图均衡化处理后: 可以看到图像的对比度整体有的很大的提升,原本模糊不清的细节也变得清晰起来 直方图均衡化的算法实现可以分为三个步骤: 第一步:获得原图像的概率密度函数(PDF). 1 for(i=0;i<rows;i++) 2 { 3 for(j=0;j<cols;j++) 4 { 5 n[Ima

[数字图像处理]图像复原--逆滤波

1.逆滤波的问题点 图像的老化,可以视为以下这样的一个过程.一个是退化函数的影响(致使图片模糊,褪色等),一个可加性噪声的影响. 用算式表示为 前几篇博文,主要是介绍可加性噪声的去除.本博文,主要介绍图像的逆滤波,即退化函数的去除.然而,逆滤波在空间域内的处理是很不方便的. 简单的来考虑,加法的逆运算是减法,乘法的逆运算的除法,微分的逆运算是积分(严密一点说是不定积分).那么就可以得到一个简单的结论了,要出去卷积的话,肯定需要用到卷积的逆运算.卷积的逆运算是---------反卷积,额,好像是一