C++/GDI+ 学习笔记(四)——实用技巧——颜色矩阵(ColorMatrix)

原创 2007年10月15日 08:59:00
         颜色矩阵在GDI+中是十分有用的。
一位颜色信息,由ARGB四部分组成,分别是透明度和三个颜色分量。一个4×4的矩阵即可完整的表示出一个颜色的矩阵,但4*4矩阵无法完成一些变换(例如平移),所以补成了一个5×5的矩阵。最后的一位一直是1。
ColorMatrix colorMatrix = {
           0.3f,     0.3f,     0.3f,     0.0f,     0.0f,
           0.59f,   0.59f,   0.59f,   0.0f,     0.0f,
           0.11f,   0.11f,   0.11f,   0.0f,     0.0f,
           0.0f,     0.0f,     0.0f,     0.3f,     0.0f,
           0.0f,     0.0f,     0.0f,     0.0f,     1.0f };
上面的这个矩阵,是将图片转换成灰阶形式,即去色。[4][4]的位置即是永远为1。[3][3]处,是透明度,这里设置的是30%,所有的数字都是最大为1,即100%。
0.3×Red + 0.59×Green + 0.11×Blue 即是某点颜色的灰阶值。
ColorMatrix colorMatrix = {
           0.3f,     0.3f,     0.3f,     0.0f,     0.0f,
           0.59f,   0.59f,   0.59f,   0.0f,     0.0f,
           0.11f,   0.11f,   0.11f,   0.0f,     0.0f,
           0.0f,     0.0f,     0.0f,     0.3f,     0.0f,
           0.0f,     0.0f,     0.0f,     0.0f,     1.0f };
 
      ImageAttributes imageAtt;
      imageAtt.SetColorMatrix( &colorMatrix );
 
      Bitmap Bmp( “a.bmp” );
      INT iWidth = Bmp.GetWidth();
      INT iHeight = Bmp.GetHeight();
 
      Graphic.DrawImage(  // Graphic是事先初始化好的Graphics
           &Bmp,
           Rect(0, 0, iWidth, iHeight),
           0,                                                               
           0,                                                               
           iWidth,                                             
           iHeight,                                            
           UnitPixel,
           &imageAtt);

颜色特征提取(二)------颜色矩

一种非常简单而有效的颜色特征使由Stricker 和Orengo所提出的颜色矩(color moments) [7]。这种方法的数学基础在于图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分...
  • langb2014
  • langb2014
  • 2015-05-07 18:14:49
  • 6287

C++ ARGB 和 16进制相互转换

代码测试过的。希望能有更好的方法。 unsigned int fun_ARGB(int a,int r,int g,int b) { return a } void get_ARGB(unsig...
  • rbagglo
  • rbagglo
  • 2015-08-19 11:46:39
  • 968

浅析RGB 及RGB转换为ARGB

RGB :是24位的颜色值,高八位为R,中间八位为G,后八位为B。 ARGB:是32位的颜色值。高八位为A,次八位为R,再次八位为G,最后八位为B。 转换方法如下: AS3语言。 r,g,b,...
  • moyumoyu
  • moyumoyu
  • 2011-09-28 23:29:28
  • 10811

ARGB 值详解

十六进制颜色值在 ActionScript 中, 与 BitmapData 类结合使用的颜色值应使用 32 位十六进制数表示。32 位十六进制数是四对十六进制数字的序列。每个十六进制对定义四个颜色通道...
  • zeng622peng
  • zeng622peng
  • 2011-11-03 11:31:51
  • 33931

GDI+ for VCL基础 -- 颜色调整矩阵ColorMatrix详解

        本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误...
  • maozefa
  • maozefa
  • 2007-12-27 23:33:00
  • 17031

GDI+学习及代码总结之-----坐标变换、矩阵变换及色彩变换

坐标变换、矩阵变换 在Graphics类中,有几个函数实现了简单的坐标变换 Graphics::TranslateTransform(dx, dy, order)//平移坐标系 Graph...
  • harvic880925
  • harvic880925
  • 2013-06-18 15:21:07
  • 7994

图的遍历算法-七巧板涂色

有如图所示的七巧板,试设计算法,使用至多4种不同的颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。 算法设计: 1、使用邻接矩阵表示七巧板的相邻...
  • Double2hao
  • Double2hao
  • 2016-06-11 10:38:06
  • 3352

颜色矩

在颜色特征方面,为减小运算量,采用颜色矩作为检索的特征,分别提取被检测图像和数据库中图像的一、二、三阶矩。由于HSV颜色空间的色调、饱和度、明度与人眼对颜色的主观认识相对比较符合,与其他颜色空间相比H...
  • a200800170331
  • a200800170331
  • 2013-12-16 15:21:11
  • 2827

使用colorMatrix

对图像进行颜色方面的处理,通过使用颜色矩阵(ColorMatrix)来实现。从而可以达到很多特效如黑白老照片、泛黄旧照片等等。 1.颜色矩阵(ColorMatrix) 这里有详细的介绍:h...
  • hewence1
  • hewence1
  • 2014-09-22 13:50:00
  • 1971

R-FCN算法及Caffe代码详解

http://blog.csdn.net/u014380165/article/details/72848254 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...
  • gaotihong
  • gaotihong
  • 2018-01-26 18:07:02
  • 74
收藏助手
不良信息举报
您举报文章:C++/GDI+ 学习笔记(四)——实用技巧——颜色矩阵(ColorMatrix)
举报原因:
原因补充:

(最多只允许输入30个字)