游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3222|回复: 12

简洁的图像亮度代码----Matrix类的应用

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-9-9 19:43:00 | 显示全部楼层 |阅读模式
使用gdi,性能上肯定不如Lock表面,但作为软件制作或者图形处理的学习,基本就行了。
既然用GetPixel,SetPixel这么慢的东西,使用MATRIX结构体也损失不了多少性能了,
关键是,(试验,学习用),要方便,可读性高,不宜出错!

头文件请从这里下载:
http://cpp.instemast.com/

代码如下:

#include <instMatrix.h>
using namespace inst;

Float3x3 TO_YUV = {  0.299f,  0.587f,  0.114f,
                                       -0.148f, -0.289f,  0.437f,
                                       0.615f, -0.515f, -0.100f };

Float3x3 TO_RGB = {  1.0000f, -0.0000f,  1.1398f,
                                       1.0000f, -0.3938f, -0.5809f,
                                       1.0000f,  2.0279f,  0.0018f };

/////////////////////////////////////////////////////////////////////////////////////

// 这里是核心算法:

BEGIN_FUNC(Light, rgb, arg)    // rgb: current pixel, arg: delta Y,U,V

        Float3 yuv = TO_YUV * rgb;
        yuv += arg;
        rgb = TO_RGB * yuv;

END_FUNC()

sf_20089919430.rar

17.43 KB, 下载次数:

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2008-9-9 21:12:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

汗一个

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-9 21:14:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

这下研究数字图像处理就方便了,哈哈

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-9-9 21:55:00 | 显示全部楼层

Re: Re:简洁的图像亮度代码----Matrix类的应用

xpertsoft: Re:简洁的图像亮度代码----Matrix类的应用

汗一个

跟着老潘汗一个 [em13]

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-9-9 22:43:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

那我也随大家汗一下好了....

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-10 08:24:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

其实,最直接的用途是,首先可以减轻d3d数学类库的编写负担。
其次,比如你想在2D游戏中使用向量和矩阵,不必再次书写和d3dxmath类似的代码。
今后如果想做4D试验,也不用再写一遍代码。
而且,要知道,他们和d3d9的矩阵/向量的内存结构完全一致!(此外也可以是动态的)

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-9-10 09:40:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

其实,GetPixel/SetPixel比做做矩阵乘法还慢得多

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-10 10:04:00 | 显示全部楼层

Re: Re:简洁的图像亮度代码----Matrix类的应用

qrli: Re:简洁的图像亮度代码----Matrix类的应用

其实,GetPixel/SetPixel比做做矩阵乘法还慢得多


没办法啊,作软件只有用它。lock表面太麻烦了,还要处理格式问题。
既然G/S##Pixel已经很慢了,那就不在乎用value类型的MATRIX类了

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-9-10 12:55:00 | 显示全部楼层

Re: 简洁的图像亮度代码----Matrix类的应用

太复杂了 [em7]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-13 10:47:00 | 显示全部楼层

Re:简洁的图像亮度代码----Matrix类的应用

实在对不起大家。到今天才发现,新更新的压缩包不存在来着!我会尽快上传上来的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 07:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表