(C++ 图像处理高手请进)关于用C++进行一些基本的图像处理问题

请问如何用C++编写一个BMP图像处理的程序?
程序要求:
读入两张bmp图像A、B,然后在它们之中进行变换,如变换函数:F(t)= (1-t)A+tB,其中A、B分别表示图像A、B的所有信息。
示例:当t=1的时候,显示的就是图像B;
当t=0的时候,显示的就是图像A。
当t=0.5时,显示的图像的像素就是0.5倍对应A、B图像的像素之和。
输入示例:
D:\\Image_A.bmp
D:\\Image_B.bmp
输出示例:
显示该过程的渐变所产生的所有图像。
说明:如果用到MFC工程的话,请给关于工程详细说明,如从打开Visual C++ 6.0 到每一步要选择什么,再到如何编译,连接运行等等,因为本人未曾做过工程类的编程。越详细越好!
开发环境:Visual C++ 6.0
特别说明:提供源代码(完全可编译通过,运行的)。
解决该问题后再送200分。

第1个回答  2009-03-24
二楼说得太好了

付上同学的一句话:
气存丹田,伸手要钱,不给我钱,吃我一拳
第2个回答  2009-03-24
void __fastcall TAlpha::Add(byte * const ptrDestBuffer, const byte * const ptrSrcBuffer, int Width, int Height, int idLineAdd, int isLineAdd, int idPixelAdd, int isPixelAdd, float fRatio) const
{
if (fRatio == 0.00f)
{
return;
}

byte *ptrDest = ptrDestBuffer;
const byte *ptrSrc = ptrSrcBuffer;

int value;
float fRatio1 = 1.000f - fRatio;

for (int i = 0; i < Height; i++)
{
for (int j = 0; j < Width; j++)
{
value = fRatio1 * *(ptrDest) + fRatio * *(ptrSrc++);
*(ptrDest++) = (byte)value;
value = fRatio1 * *(ptrDest) + fRatio * *(ptrSrc++);
*(ptrDest++) = (byte)value;
value = fRatio1 * *(ptrDest) + fRatio * *(ptrSrc++);
*(ptrDest++) = (byte)value;

ptrDest += idPixelAdd;
ptrSrc += isPixelAdd;
}
ptrDest += idLineAdd;
ptrSrc += isLineAdd;
}
}
第3个回答  2009-03-24
那必须要收钱,不能助长懒惰之风气,我们要钱不为别的,只为能让你们明白一点 要靠一点自己的双手,不能只想天上掉馅饼
第4个回答  2009-03-27
具体源代码 自己慢慢写 才有乐趣

用api 函数

1 创建位图 CreateBitmap
2 将位图数据复制到自定义数组中 GetBitmapBits
3 直接对数组数据进行循环运算 A[i]= (1-t)A[i] + tB[i]
4 保存像数值到位图中 SetBitmapBits
5 保存位图到磁盘 SaveBmp
第5个回答  2009-03-27
这题相当的简单
你去下载个opencv吧
做图像处理非常适合
具体可去www.opencv.org.cn看看就知道
ps, 会不会认为我是这网站的托? 不管它

(C++ 图像处理高手请进)关于用C++进行一些基本的图像处理问题
用api 函数 1 创建位图 CreateBitmap 2 将位图数据复制到自定义数组中 GetBitmapBits 3 直接对数组数据进行循环运算 A[i]= (1-t)A[i] + tB[i]4 保存像数值到位图中 SetBitmapBits 5 保存位图到磁盘 SaveBmp

C++图像处理?忘高手指教!
你要请教什么啊?你把你不会的地方也说出来啊。你该不会想让别人从头到尾整个帮你做了吧。这样偷懒是不行的,不仅不利于自己进步,而且高手一般只会给你一些指点,不可能给你从头到尾包办的,大部分人不会愿意浪费大把时间来赚那一点点分数,当然那种从网上给你大段粘贴代码的除外。

C\/C++高手请进 我有问题哈
1.我是做音频信号处理的。感觉matlab编程比较重要,C++次之。其实最重要的是数学。实际上咱们都是做数字信号处理的,无论是声音还是视频,都是二进制信号嘛。2.VC6是就是C++编译环境,Visual C++ 的简称 不过可以尝试VS2010,VC问题比较多。3.自学C++可以先看谭浩强的教程,十分简洁,十分快速入门。然...

我是一个电工(大专毕业)现在工作已经3年了,由于专业知识有限现在工作遇 ...
首先是基础编程语言,我们主要用的是C(或者C++),把这部分学好是必需的,因为很多高年级的课程都需要用C语言进行编程实验;而且建议能够熟练使用vc++编程环境,这方面主要靠自学,也可以选修对应的课程,前提是对C(或者C++)有比较好的基础。个人建议可以通过假期时间集中学习,例如大一结束的那个暑假,以前不让新生买电脑,正...

嵌入式高手请进 软件 硬件
一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在...

C++语法高手进
本书首先从Visual C++6.0的基础知识入手,详细介绍了Visual C++6.0的操作环境和应用程序的基本框架,然后按照由易到难、由浅入深地顺序介绍了用Visual C++6.0开发Windows程序的方法,包括菜单和加速键、对话框、常用控件、文本和字体类、图形图像、文件操作、多线程 ... 本回答被提问者采纳 已赞过 已踩过< 你对...

求C++ 网络编程最好的书籍 谢谢了
可以不太严格地认为这本书是《C++ Primer》的精简版。本书一一讲述了C++中最具代表性的主题,包括过程式编程、泛型编程、基于对象编程、面向对象编程、模板编程以及异常处理等。Stanley将门槛调低到“具有其他语言程序设计经验”的C++新手所能接受的最基本的层次,使他们能够迅速开始使用C++编程而又免于阅读《C++ Primer...

求高手用c++解决二十四点的问题,具体如下
求高手用c++解决二十四点的问题,具体如下 二十四点游戏时间限制:1000ms内存限制:8196KB描述算二十四点是个很好玩的扑克牌游戏,给4张的A-K的扑克牌,分别代表1-13,随意组合这四张牌,只使用"+-*\/"的四则运算,不使用其他运... 二十四点游戏时间限制:1000 ms 内存限制:8196 KB 描述算二十四点是个很好玩的...

GBA高手请进!!
GBA库提供了图像,控制及声音一系列的函数,和GCC++配合使用. 二. DevKitAdv 的安装 没啥好说的,解压后就可以直接使用,编译时设置DevKitAdv的路径就可以了,建议做一个批处理文件,比如 go.bat set PATH=d:\\devkitadv\\bin;%PATH% cmd (win98是command) 三. 最简单的 GBA 程序 (t1) \/\/ main.c \/\/ 一些基...

C++自学教材推荐
1.《C++Primer》有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细致和严谨,适合有一定经验的C、C++程序员作为工具书和理论指导书使用,但由于其有一定深度,而没有进阶顺序的章节安排,所以不适合初学者做为教材使用,价格略高。难度:★★☆ 质量:★★★ 广度:★★★ 深度:★...

相似回答