Cimg代码初探

    程序设计最为激动人心的地方,在于丰富的并且容易被查阅到资料。比如对于图像处理,固然有Opencv等较为丰富、被广泛知晓的类库;也有其他很多具有一定特色的类库。在这段时间里面,我对CImg图像处理库进行了初步研究,并且做小结如下:

一、类库总体情况
    总体感觉,CImg是一个“小家碧玉”类型的类库。这里的“小”,不仅体现在代码结构上、体现在代码数量上,我觉得很大程度上也体现在代码内容上:比如代码的缩进都是采用最节省空间的方法,大量采用了连续处理的方法,其实现的功能也是比较有“趣味”,但不是解决实际问题的方法
再比如,已经将许多图片程序以“硬编码”的方式编入了类库,这些都体现了程序设置者的“偏执”,或者叫做“个性”,但是并不能将CImg变成一个更有用的类库。
但是反过来说,CImg实现的许多效果,的确是匠心独运,简直可以说是"so COOL"
炫动的菜单背景
非常适合做帮助的flag
光怪陆离的效果
游戏
3D效果
鱼眼
可视化的Gamma矫正
足球轨迹。
二、研究思路和计划
    1)对前面提出来的几个部分进行分别研究,并且分割复用其中部分为自己所用,关键是理解思路;
    2)将类库中全部的文件和其应该发挥的作用搞明白;
    3)登录官网,查看理解这个类库的发展、讨论和现状;
    4)反思在图像处理领域应该如何做下去。
[2016年4月7日15:34:25]
首先理解CImg类库的类库特点和代码结构;而后对背景动画进行分析。所有的结果都需要能够独立出来并且方便被复用。
         
        能够直接绘制出"plasma"纹理的界面
        动态的圆的界面主要还是来自于随机数
#, ,  }, black[] , ,  },     red[] , ,  },
         yellow[] , ,  },   green[] , ,  }, purple[] , ,  },
         blue[]   , ,  },  grey[] , ,  };
     , ry , t , gamma , vgamma , T .;
     ,,,,), fore, text, img;,,,,,).resize(,,,,).get_shared_channel().noise(,).draw_plasma();,,,).draw_text(,y0,,,,
     cimg_version,(cimg_version),cimg_version);
     (fore).dilate()).resize(,,,);
     cimg_forXY(fore,x,y)
     ) fore(x,y,) ) ) ;
     .0f,.0f));
     fore(x,y,) .) ) .).draw_image(,y0,text));
     ,,(disp.screen_height());
     img .; .; i; ).0f) .0f))),
                        my ).0f) .0f))),
                        mz ..) )));
                    ;
                    .),(..) {
                    y );
                    ; yy; ,yy,,,img.width(),yy,,,(,y,,y,,y,yellow).draw_triangle(img.width(),y,img.width(),y,img.width(),y,yellow);
                }
                gamma) 
                { 
                    gamma ; 
                    rx ..) { T.);
           }
      }
    
     getchar();
}
使用opencv进行重写
  

Cimg代码初探的更多相关文章

  1. delphi中formatFloat代码初探(在qt下实现floatformat的函数)

    由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来. ...

  2. 页面定制CSS代码初探(六):h2、h3 标题自动生成序号 详细探索过程

    前言 最近在整理博客写作格式的规范,碰到一个问题:标题要不要加序号? 直到我碰到一个人这么说 手动维护编号实在是一件很闹心的事情, 如果位置靠前的某个段落被删除了, 那么几乎每个段落的编号都要手动修改 ...

  3. 页面定制CSS代码初探(五):给每篇文章最后加上'<完>'

    前言 我刚写博客的时候,有几篇是手动在最后加了个<完> 今天在看别人CSS布局时,发现很多::before和::after标签,因为没学过CSS,从名字看大概是前边/后边 加上某个东西的意 ...

  4. 页面定制CSS代码初探(四):cnblogs使用Github引用样式

    前言 对于用惯了Github的人来说,眼里的引用应该是这样的 "Talk is cheap. Show me the code" -- Linus Torvalds 然而实际上cn ...

  5. 页面定制CSS代码初探(三):设置正文最小高度

    前言 没想到再次写这篇,已经过去1年半了. 现在审美也发生了改变,一开始做的样式全删了,只保留了h2的样式.原先认为界面要宽,两边留太多空很浪费,看惯了知乎和简书,觉得默认最大1000px的排版也不错 ...

  6. 页面定制CSS代码初探(一):页面变宽 文本自动换行 图片按比缩放

    初识博客 初写博客,先在设置里选了个喜欢的模板 第一眼就爱上了呢!那极简的风格,我喜欢!!但是,应用后,却发现... 纳尼!模板上右侧那张漂亮的图片呢?!我的怎么什么都没有.没有图片好难看啊,瞬间无爱 ...

  7. nodejs代码初探之nodejs启动

    nodejs启动 入口在node_main.cc,解析参数后进入node.cc 中的node::Start() V8::Initialize() //初始化v8SetupProcessObject() ...

  8. Java中自动装箱代码初探

    <深入理解Java虚拟机>中讲语法糖时,提到了下面这个例子(不是原文中的例子,我自己改过): public class AutoBoxingTest { /** * @param args ...

  9. 页面定制CSS代码初探(二):自定义h2标题样式 添加阴影 添加底色 等

    故事的开始 先说一下<h2></h2>原先默认是空白的,很难看 然后今天无意中看到一个博友的标题很好看啊,一直就想要这种效果有没有? 好的东西自然要拿过来啦 通过审查元素,果然 ...

随机推荐

  1. devexpress13学习系列(四)PDFViewer(4)

    PdfViewer的属性: CurrentPageNumber:显示当前页的页码. DocumentFilePath:当前文件. DocumentProperties:文件属性. PageCount: ...

  2. Leetcode: Increasing Triplet Subsequence

    Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...

  3. Codeforce Round #225 Div2

    这回的C- -,弄逆序,我以为要弄个正的和反的,没想到是等价的,弄两个还是正确的,结果我又没注意1和0只能指1个方向,结果弄了4个,取了4个的最小值就错了,自己作死没弄出来...,后面又玩去了...哎 ...

  4. BZOJ K大数查询(分治)(Zjoi2013)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3110 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b ...

  5. (七)DAC0832 数模转换芯片的应用 以及运算放大器的学习 01

    DAC0832是8分辨率的D/A转换集成芯片.与微处理器完全兼容.这个DA芯片以其价格低廉.接口简单.转换控制容易等优点,在单片机应用系统中得到广泛的应用.D/A转换器由8位输入锁存器.8位DAC寄存 ...

  6. linux env

    .Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.1 永久的:需要修改配置文件,变量永久生效. 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效. ...

  7. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

    在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...

  8. oracle ebs 采购订单关闭之PL/SQL实现方法

    应客户需求,需要写个脚本,批量关闭Bonus Item类型的采购订单,在metalink上搜索到一些方法,但是都测试不通.原来需要将代码生成一个并发程序.下面是测试成功的代码. 1.首先创建一个存储过 ...

  9. 夺命雷公狗mongodb之----mongodb---3---比较操作符

    $lt    <  less than 小于 $lte   <=  less than and equal 小于等于 $gt    >   greater than 大于 $gte ...

  10. 夺命雷公狗—angularjs—23—copy拷贝对象

    copy这在angularjs中是一个拷贝对象的方法: <!DOCTYPE html> <html lang="en" ng-app="myapp&qu ...