GDI+中的Bitmap类可以用来读取各种格式的图片文件,并对图片进行操作。下面内容主要应用到对图片中每个像素的处理。
应该要用到Curvelets来对图像进行处理,先说一下如何配置项目。
1. 先确认下Curvelets库的包中有dll和lib文件,还有几个头文件。另外的测试程序告诉你如何应用Curvelets的。
2. 新建一个MFC项目,将所有文件复制到项目目录下。项目属性中的链接器选项中,把lib文件名加入到“依赖项”中。将所有头文件加入MFC预编译头中。
3. 在应用Curvelets的时候,记得引用std命名空间和Curvelets的命名空间。
下面用几个代码段来说明如何应用Curvelets对图像进行处理。
假设现在在类(比如文档类)中有m_img为Bitmap,m_matrixR、m_matrixG、m_matrixB为CpxNumMat(复矩阵)。将图片文件读到m_img中,然后对每个像素进行处理,得到RGB颜色分量的三个复矩阵(由于RGB单个分量只是0到254而已,只用整数矩阵即可,但Curvelets只提供了复矩阵进行运算,而且和整数矩阵并没有继承关系,这点有点遗憾,因为整数当然是复数的特例啦)。之后对每个复矩阵进行Curvelets变换。反变换是此的逆过程就不再说明了。下面分别来看下。
1. 将图片文件读到m_img中
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
2. 对每个像素进行处理,得到RGB颜色分量的三个复矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
3. 对复矩阵进行 Curvelets 变换
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)