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

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

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

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

下面是我基于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);
    }

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

  1. 基于matlab的gui图像处理,基于matlab GUI的数字图像处理系统毕业论文+开题报告+程序+设计文献...

    摘  要 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.在数字图像处理过程中,输入的是质量低的图像 ...

  2. (附源码)python数字图像处理课程平台 毕业设计 242339

    Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

  3. (附源码)Python数字图像处理课程平台 毕业设计242339

    Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

  4. 数字图像几何变化matlab,【新书推荐】数字图像处理——使用MATLAB分析与实现

    原标题:[新书推荐]数字图像处理--使用MATLAB分析与实现 数字图像处理是现代信息处理的研究热点.教材基于大学教学特点.目的编写,介绍数字图像处理的基本原理.算法分析和实现.章节内容由浅入深,层次 ...

  5. 数字图像处理领域的二十四个典型算法及vc实现、第一章

    数字图像处理领域的二十四个典型算法及vc实现.第一章 作者:July   二零一一年二月二十六日. 参考:百度百科.维基百科.vc数字图像处理. --------------------------- ...

  6. 数字图像处理领域的二十四个典型算法

    数字图像处理领域的二十四个典型算法及vc实现.第一章 一.256色转灰度图 二.Walsh变换 三.二值化变换 四.阈值变换 五.傅立叶变换 六.离散余弦变换 数字图像处理领域的二十四个典型算法及vc ...

  7. 数字图像处理matlab上机实验 (八)

    前言:作为一名图像算法攻城狮,那是在2014年大三下学期,一本深绿色的<数字图像处理>(冈萨雷斯的英文版)出现在自己课桌前.偶然间打开的一扇意外之门,就这样结下了一段不解之缘,那些日子不断 ...

  8. 数字图像处理:实验三 图像增强

    实验三 图像增强 图像增强是数字图像处理过程中常采用的一种方法.为了改善视觉效果或便于人和机器对图像的理解和分析,根据图像的特点或存在的问题采取的改善方法或加强特征的措施称为图像增强.图像增强处理是改 ...

  9. 【数字图像处理3】(下) 使用Python+OpenCV+EDSR模型,实现超分辨率重建(SR)

    超分辨率重建(SR) Python+OpenCV+EDSR模型 文章目录 超分辨率重建(SR) Python+OpenCV+EDSR模型 注意 1.安装OpenCV contrib模块 2.contr ...

最新文章

  1. 专访NIPS主席:如何保证论⽂评审的公平性?| 人物志
  2. Linux必学的系统管理命令
  3. Google Guava Collections 使用介绍
  4. cocos2d-x 帧动画学习
  5. python中所有保留字首字母都是小写_int是不是python的保留字
  6. OWC组件生成柱状图
  7. C++与Java多态的区别
  8. sequelize 外键关联_mysql – Sequelize.js外键
  9. PCI总线原理(二)
  10. Java接口修饰符详解
  11. linux更改文件属性宁静,shell /dev/null 21 ( linux空设备文件和重定向)
  12. 在ASP.NET中运用JavaScript重定向页面
  13. linux多线程编程介绍
  14. matlab uicontrol 居中,matlab的uicontrol
  15. 在Ubuntu 16.04 64bit上安装谷歌地球Google Earth免费版
  16. Oracle创建临时表
  17. 计算机专业大学生怎么学习?
  18. PostgreSQL数据库pg_test_timing学习使用
  19. Photoshop(简称Ps)制作个人logo
  20. 微信公众号网页授权登陆

热门文章

  1. 【IDEA】怎么把idea的目录结构,以文本形式输出?
  2. 后端开发实践:Spring Boot项目模板,拿去用吧!
  3. SpringMVC教程--Validation校验
  4. springmvc教程(2)
  5. python连接mysql_Python连接MySQL
  6. 最小生成树(Prim、Kruskal)算法,秒懂!
  7. ElasticSearch学习笔记(一)—了解及装配
  8. Java学习笔记——封装
  9. KVM 安装windows 虚拟机
  10. python自动化从零开始_从零开始的自动化测试框架——Python篇