关闭

RenderMonkey在数字图像处理中的应用

2949人阅读 评论(2) 收藏 举报
 
大家可以拿来做<<数字图像处理>>这门课的实验, 呵呵, 这样就不用自己去实现框架了, 而且速度也快^_^
 
第一步, 这样来创建一个模板程序:
如图
我们先来认识一下左边有些什么:
base: 这是一个纹理(-_-图形学的术语…), 在这里我们就把它当成我们要处理的图像, 注意图像的长宽都是2的n次幂. 双击可以打对话框更换.
Stream Mapping: 不用管它, 保持默认值就好.
ScreenAlignedQuad: 其实只是一个正方形网格而已, 做为base纹理的骨架.( 又来了, 图形学-_-).暂且把它当成画板吧, 不用动它.
Single Pass: 进行绘制的地方
       ScreenAlignedQuad: 又一个…看见有个小剪头了没? 上面那个同名东的引用.
       Render State: 设置了一些渲染的参数, 不用管它.
       Vertex Shader: 里面写了怎么把ScreenAlignedQuad画到屏幕上, 这种支画板的活我们不关心.
       Pixel Shader: 像素级的处理, 这就是我们要发挥我们想像力的地方了!
       Texture0: 上面那幅图的引用.
       Stream Mapping: 也是上面的那个”不明物体”的引用.
 
下面让我们打开Pixel Shader看看都有什么:
是不是看着很像C语言啊? 我再来XX两句:
sampler2D Texture0;
定义一个叫Texture0的图, 见上面的介绍. 注意保持名字的一致, 不然程序就找不到要处理的图像啦.
float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR
所谓的float4就是由4个float组成的一个结构, 像这样:float4(x,y,z,w), 如果当成颜色值的话, 就是这样float4(r,g,b,a). 不要问我RGBA是啥, 图像处理时讲的……..
ps_main就是函数名, 括号里是参数
这里的texCoord就是我们要处理的当前像素的坐标值. 细心的可能看到它是float2格式的, 嗯, 没错, 实际上它就是一个float2(x,y) 型的结构. 不过有一点一定要注意: 这里的坐标单位不是基于像素的, 而是基于纹理坐标系的(别扔我…我解释一下就是了)
召唤一幅图:
图上的一格代表一个像素, 括号里面就是传统的像素坐标, 下面批示的就是纹理坐标.
聪明的你一眼就能看出来, 纹理坐标各轴上范围是[0,1], 相当于把原来的像素级的坐标除以了图像的宽度(高度).
 
来, 我们操刀上阵, 修改一下:
双击base换张彩图:
把PixelShader做如下修改:
sampler2D Texture0;
 
float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR
{
   //当前像素在图像中的颜色值
   float4 color = tex2D( Texture0, texCoord );
  //转换RGB为强度值
   float intensity = color.r * 0.299 + color.g * 0.587 + color.b * 0.184;
  
   return float4(intensity,intensity,intensity,1);
}
效果:
成黑白的了, 简单不?
(RGB到强度转换为什么那样转见课本. 你想偷懒的话直接(R+G+B)/3好了……)
 
 
 
未完待续……….
 
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

最优化方法在图像处理中的应用【5】

最优化方法在图像处理中的应用【5】 分类: image process optimization 数学2013-09-23 21:34 42人阅读 评论(0) 收藏 举报 ...
  • pi9nc
  • pi9nc
  • 2013-09-24 00:48
  • 1279

visual C++数字图像处理类

由于现在手头的学习是关于图像处理的,有些技能肯定迟早要用上,于是决定利用假期学习Visual C++的相关知识。 今天是第一天,主要学习使用visual c++进行面向对象编程的基本方法。并给出数字...
  • a1154761720
  • a1154761720
  • 2015-01-21 22:53
  • 1699

模糊集理论在图像处理中的应用

本文选自:http://www.cnblogs.com/Imageshop/p/3302850.html,作者写的非常不错,包括另外一篇文章:http://www.cnblogs.com/Images...
  • jorg_zhao
  • jorg_zhao
  • 2016-01-27 15:05
  • 1587

RenderMonkey在数字图像处理中的应用

http://blog.csdn.net/xoyojank/article/details/1809424   大家可以拿来做>这门课的实验, 呵呵, 这样就不用自己去实现框架了, 而且速...
  • MagicRoom3D
  • MagicRoom3D
  • 2011-11-28 22:44
  • 343

数字图像处理应用领域及所需学习的学科知识

选择了数字图像处理这个研究方向作为终身的目标,天赋+兴趣+努力,你将拥有了开启未来最前沿,最富活力技术的钥匙。人类获取的信息80%以上来自于视觉,但目前让机器来处理这些信息才刚刚开始呀,同志们要努力!...
  • ccyccy2012
  • ccyccy2012
  • 2015-01-03 23:34
  • 2109

卷积理解以及在数字图像处理中的应用

卷积的数学意义 卷积(Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子 卷积的物理意义 卷积在信号处理机制中用途广泛,其中函数f可看做信号的发生,函数g可看做对信号响应...
  • qq_32884717
  • qq_32884717
  • 2016-07-15 15:05
  • 1167

初探FFT在数字图像处理中的应用(fft2函数的使用方法)

初探FFT在数字图像处理中的应用                 一般FFT在通信等领域都做的一维变换就可以了,但是在图像处理方面,需要做二维变换,这个时候就需要用到FFT2...
  • u011368821
  • u011368821
  • 2014-09-28 23:08
  • 2162

数字图像处理应用的一些网站

有关边缘检测的一些论文以及一本数字视频处理的书 http://www.61ic.com/vip/image/OpenCV/201303/118270.html 完整可用的matlab车牌识别程...
  • qq1028951741
  • qq1028951741
  • 2016-04-02 10:52
  • 244

数字图像处理的技术方法和应用

所谓数字图像处理,是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。20 世纪 50 年代,电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息,这便是早期的图像处理。早期图...
  • yangleo1987
  • yangleo1987
  • 2016-11-18 10:55
  • 2379

数字图像处理技术在TWaver可视化中的应用

数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。常用的图像处理方法有图像增强、复原、编码、压缩等,数...
  • twaver
  • twaver
  • 2015-04-16 14:26
  • 1669
    个人资料
    • 访问:1502029次
    • 积分:18860
    • 等级:
    • 排名:第549名
    • 原创:254篇
    • 转载:74篇
    • 译文:28篇
    • 评论:938条
    博客专栏
    文章存档
    最新评论