继openCV之后接触的又一个C++视觉库——短小精干的CImg

刚开始接触的时候真的是..几乎无从下手,网上资料比较少,但发现有一篇非常有用的中文手册:http://wenku.baidu.com/link?url=GKEgUZUzabHADgCQG3Dg5NGzaMevXu38vvHF71UB339zZJVLaqYWCrPQfmNV7Y0gYMb340wVNK9fJ7Zu0H54Hchi8UwKI3yCQlCnVcoC8mK

再加上,CImg本身的代码并不是很多,也容易理解,最关键的是,源码里注释写得很明白,所以打开源码,ctrl+F来学习也非常不错。

这里记录一下CImg的一些基本的像素操作

————————————————我是一条分割线—————————————————————

主要是这几个:

(x, y分别表示在横纵轴上的坐标,(0,0)在左上角, z = 1时,表示2D图像, c 表示通道数)

//存取(x, y)处,z通道的值, 若X小于0,则取值为零,若x大于width,则取值width-1处,最后存取(x, y, z, c)的值

T& atX(int x, int y, int z, int c)

//存取(x, y)处,z通道的值  ,防止X、Y超出范围,若是超出范围则取边界值,最后存取(x, y, z, c)的值

T& atXY(int x, int y, intz, int c)  

//存取(x, y)处,z通道的值  ,防止X、Y、Z超出范围,同上     

T& atXYZ(int x, int y, int z, int c)    

//存取(x, y)处,z通道的值  ,防止X、Y、Z、C超出范围, 同上   

T& atXYZC(int x, int y, int z, int c)      

//存取(x, y)处,z通道的值  , 若X超出范围,则返回out_value 

T& atX(int x, int y, int z, int c, const T& out_value)   

//存取(x, y)处,z通道的值  , 若(X超出范围 || y超出范围),则返回out_value   

T& atXY(int x, int y, intz, int c, const T& out_value)       

//存取(x, y)处,z通道的值  ,若(X超出范围 || y超出范围 || z超出范围),则返回out_value

T& atXYZ(int x, int y, int z, int c, const T& out_value)    

//存取(x, y)处,z通道的值  ,若(X超出范围 || y超出范围 || Z超出范围 || C超出范围),则返回out_value   

T& atXYZC(int x, int y, int z, int c, const T& out_value)    

编译指令:

g++ -o test.exe test.cpp -O2 -L/usr/X11R6/lib -lm -lpthread -lX11

运行:

./test.exe

code:

 #include <iostream>
#include "CImg.h" using namespace cimg_library;
using namespace std; int main(int argc, char* argv[]) { CImg<unsigned char> testImage1("images/image3.bmp");
CImg<unsigned char> testImage2(testImage1.width(), testImage1.height(), , );
for (int i = ; i < testImage1.width(); i ++)
for (int j = ; j < testImage1.height(); j ++)
for (int k = ; k < ; k ++)
testImage2.atXYZC(i, j, , k) = testImage1.atXYZC(i, j, , k);
testImage2.display("COPY");
return ;
}

   

【CImg】基本像素操作的更多相关文章

  1. canvas像素操作

    像素操作 相关方法:getImageData(x,y,w,h);  putImageData(oImg,x,y);  createImageData(w,h); 1.getImageData(x,y, ...

  2. HTML5 canvas图像绘制方法与像素操作属性和方法

    图像绘制方法 drawImage()        向画布上绘制图像.画布或视频 像素操作属性和方法 width                                返回 ImageData ...

  3. Android Bitmap 载入与像素操作

    Android Bitmap 载入与像素操作 一:载入与像素读写 在Android SDK中,图像的像素读写能够通过getPixel与setPixel两个Bitmap的API实现. Bitmap AP ...

  4. HTML5_canvas_像素操作_图片马赛克_图片反相

    canvas 像素操作 像素,即像素点,一个像素只有一个颜色 100*100 的 px 的屏幕区域有 100*100*4 个像素点,即 width*height*4 rgba(0, 0, 0, 1); ...

  5. Opencv中图像的遍历与像素操作

    Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0 ...

  6. opencv中对图像的像素操作

    1.对灰度图像的像素操作: #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using ...

  7. OpenCV基础篇之像素操作对照度调节

    程序及分析 /* * FileName : contrast.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...

  8. canvas上的像素操作(图像复制,细调)

    canvas上的像素操作(图像复制,细调) 总结 1.操作对象:ImageData 对象,其实是canvas的像素点集合 2.主要操作: var obj=ctx.getImageData(0,0,10 ...

  9. OpenCV像素操作和图形绘制

    像素操作 #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespac ...

随机推荐

  1. MySQL Study之--MySQL压力測试工具mysqlslap

    MySQL Study之--MySQL压力測试工具mysqlslap 一.Mysqlslap介绍     mysqlslap是MySQL5.1之后自带的benchmark基准測试工具,类似Apache ...

  2. UVA - 11374 Airport Express (Dijkstra模板+枚举)

    Description Problem D: Airport Express In a small city called Iokh, a train service, Airport-Express ...

  3. 如何让aboboo 便携版在citrix下使用(aboboo在IPAD上使用)aboboo苹果版

    公司使用的是citrix的共享虚拟桌面.如何可以让aboboo在其下面运行呢? 网上有提供绿色版,但是总是弹出首次配置无法安装的报错界面. 察看帮助文档:http://www.aboboo.com/d ...

  4. CSS总结01

    1 CSS 的作用是? 2 如何引入 CSS 样式? 3 CSS 选择器的基本类型和复合选择器分别是? 4 字体.背景.列表和链接和鼠标的属性有哪些? 5 如何理解盒子模型? 6 浮动的方式有哪些,如 ...

  5. HDU 1724 Ellipse 【自适应Simpson积分】

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  6. javaSE基础(三)

    泛型类:像ArrayList这样的特殊类,他们允许通过类型参数来指明使用的数据类型. 报装类:一种用于将基本类型的数据"封装"成对象的类. 装箱:将 基本类型的数据自动转换为对应类 ...

  7. Lexer and parser generators (ocamllex, ocamlyacc)

    Chapter 12 Lexer and parser generators (ocamllex, ocamlyacc) This chapter describes two program gene ...

  8. 准确率,精确率,召回率,F-measure 之间的关系

    总结:(图上 R的计算的分母应该是 :40+10 )(笔误) 模型条件放宽,负类被误判为正类的可能性就变大(即FP变大)精确率和准确率会受影响(变小) 模型条件变严格,正类有可能被误判为负类(即FN变 ...

  9. 16. Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例

    转自:https://crabdave.iteye.com/blog/327978 Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例 效果: 创建调用的HTML: ...

  10. 使用WinSXS进行系统盘瘦身Windows 7/2008/10/2012不断变大的C盘(Windows 更新清理)

    这是一款非常给力的国产良心小工具,用阿里云ECS的时候,一个C盘没多久就被坑爹的微软更新沉余文件塞满.此工具简单好用一下搞定! 操作系统: 所有 NT 6.X 内核的操作系统.比如 Windows V ...