图像配准实现代码VC6.0移植VC2010问题总结

VS2010中从零实现FFT算法:原理、代码与性能优化实战 快速傅里叶变换(FFT)是信号处理领域的核心算法,它将时域信号高效地转换到频域进行分析。其基本原理是通过巧妙的分解策略,将离散傅里叶变换的计算复杂度从O(N²)降至O(N log N),实现了计算效率的飞跃。这一技术价值在于为实时音频处理、图像频域滤波和频谱分析等应用提供了关键的底层支持。在工程实践中,深入理解蝶形运算、位反转置换和旋转因子预计算等核心概念,对于构建稳定高效的信号处理系统至关重要。本文以经典的Cooley-Tukey算法为例,详细解析了在Visual Studio 2010开发环境下,从复数 阅读详情

图像配准实现代码源自《精通Visual C++数字图像处理典型算法及实现》第十章 

下面是我把代码移植到VC2010过程中遇到的问题及解决办法

1.“CWinApp::Enable3dControls”引起的C4996警告

warning C4996: 'CWinApp::Enable3dControls': CWinApp::Enable3dControls is no longer needed. You should remove this call.

通常向导生成的代码是:

#ifdef _AFXDLL
   Enable3dControls();            // Call this when using MFC in a shared DLL
#else
   Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif
这两个函数的调用是旧的MFC版本对新版本的操作系统特性的支持,在新的(那个时候是新的)Windows 95平台上要这样调用一下才能使用新的Windows 3D样式的控件,否则就是老的Win 3.2样子的控件。想当初喜欢OWL就是因为感觉它的控件比较“酷”,比如那个带底纹的对话框,菱形的checkbox,还有带图标的“OK”按钮,看到MFC作出来的灰灰的界面就觉得土,不过后来就知道MFC做界面也是很漂亮的,比如我做的。。。。,再打住。对于新的MFC版本来说已经不需要再调用这两个函数了,参考前面的方法,用_MSC_VER对其隔离就行了:

#if _MSC_VER <= 1200 // MFC 6.0 or earlier
    #ifdef _AFXDLL
        Enable3dControls();            // Call this when using MFC in a shared DLL
    #else
        Enable3dControlsStatic();    // Call this when linking to MFC statically
    #endif
#endif

2.error C2259: “CException”: 不能实例化抽象类
MFC较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常:
CMemoryException:内存不足
CFileException:文件异常
CArchiveException:存档/序列化异常
CNotSupportedException:响应对不支持服务的请求
CResourceException:Windows 资源分配异常
CDaoException:数据库异常(DAO 类)
CDBException:数据库异常(ODBC 类)
COleException:OLE 异常
COleDispatchException:调度(自动化)异常
CUserException:用消息框警告用户然后引发一般 CException 的异常
所以只要把上面的CException与异常类相对应的.比如文件异常,改成CFileException.
代码中采用将所有的CException改成了CFileException

3.warning C4244: “=”: 从“ULONGLONG”转换到“DWORD”,可能丢失数据

ULONGLONG是64位的,DWORD是32位的,只要文件大于4G,转换就会造成数据错误,如果小于,则没关系。
 解决办法:
1、强制转换;A=(DWORD)B; 
2、去掉编译警告:在h文件加入#pragma warning(disable:4244)

4.如何保存256BMP格式
请使用windows自带的画图即可
保存时候选择另存为 256色位图

基于OpenCV与VC2010的帧差法动态目标检测实战 高效的内存管理是保障实时系统稳定运行的基础。OpenCV 的Mat类虽具备自动引用计数机制,但在高频循环中频繁创建和销毁对象仍可能导致性能下降甚至内存泄漏。 阅读详情

相关推荐

VC6VS2010迁移所有问题的解决方法

VC6.0开发的工程项目,移植VS2010环境下,会出现各种错误和警告,此类错误多数是由编译器和环境不兼容导致,除修改工程下的某些属性参数外,还需手动修改编译过程中出现的一些错误。

warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据

warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据      这个警告是由于新版本的VC里time_t是64位的,而srand接受32位的unsigned int,所以会丢失数据。 改成srand((unsigned

mal327的专栏 2万+

图像处理vc6.0实现

基本图像处理,vc6.0实现,包括基本的图像变换等

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)

1、error C2664: “puts”: 不能将参数 1 从“char [2][10]”转换为“const char *”2.16.1.示例1:: “初始化”: 无法从“char [2][10]”转换为“char *”error C2440: “初始化”: 无法从“char [2][10]”转换为“char *”1、error C2040: “==”:“char [10]”与“int”的间接寻址级别不同。warning C4244: “=”: 从“float”转换到“int”,可能丢失数据。

qq_44177918的博客 4482

C++学习笔记——常见数据类型

在变量的赋值、运算等过程中,如果代码写的不规范,常常会出现各种warning,通常对程序的运行没有太大的影响,但是这种隐性炸弹总会让人不安。 这里做个笔记,遇到了就来更新。 1、“T_y"和"T_p” warning C4244: “=”: 从“_Ty”转换到“_Tp”,可能丢失数据 其中_Ty=int,_Tp=float如果将两者相互赋值肯定是会损失精度的。 ...

wu01jian01的博客 816

使用VS遇到的问题

1. warning C4244 : “=”: 从“double”转换到“float”,可能丢失数据** 如float a=2.1 编译器默认2.1为double型 ,即2.1为const double类型,此赋值运算相当于把2.1隐形强制类型转换成float。可在2.1后加f或F。 2.error C4996 'fopen': This function or variable may be...

Hello_World_10的博客 1941

warning C4244

【原文写于18 January 2006,注】 #include using namespace std ;int main(){long l = 0.5 ;return 0 ;} 这样的代码vc6中竟然没有warning,0 error 0 warning编译连接通过??!!但:int main(){long l = 0.5 ;return 0 ;} 或

shuiyu的blog 2588

VC6代码移植VS2008的SDK总结,包括OPENGL和DireX还有Cimage 【总结】

VS2008,VISTA系统--------------------------------------------------------------------------------------------【1】 有关OPENGL----------------------------------------------------------------------------------

Logol_Van的专栏 1486

window32VC2010 Opencv zbar条码识别移植测试工程

最近项目需要识别二维码,之前移植的Zxing 库发现针对的项目的二维码无法识别,索性换zbar 试试。结果zbar可以完美识别出来,从而解决了现实需求。那针对zbar 在windows中如何应用呢,如下将记录一下zbar移植VC工程中。此工程只为测试工程。 由于以前将该库移植到嵌入设备过。多少对此库有些了解。zbar 和 zxing 的优缺点,zbar 主要用的是C++, zxing 主要用的...

kenny的专栏 423

CSDN著名技术专家Visual C++2010开发体验心得——从Visual C++6.0到Visual C++2010

1505

opencv图像灰化_opencv图像的读入、灰度化、二值化、反色 | 学步园

平台 wen7+vs2010+opencv2.4.4#include #includeusing namespace std;using namespace cv;void main(int argc, char* argv[]){printf("hello word!\n");IplImage *src;src = cvLoadImage("D:\\文件夹\\image.jpg"); //这里将...

weixin_39646628的博客 171

图像C++代码

图像,一个参考代码,希望对大家有所帮助

surf的c++实现,并完成图像

surf的c++代码实现,并完成图像

VC6.0数字图像处理代码

该程序包括了一部分VC实现的数字图像处理源码。可以供初学者参考使用。

UG/NX8.0 二次开发与Visual Studio的

NX8.0VS2010置 (NX其它版本同理) 1、系统安装置 1.1、安装UG ,安装VS, 假设ug安装目录 D:\Program Files\NX10.0 假设VS安装目录 D:\Program Files\Microsoft Visual Studio 10.0 1.2、拷贝D:\Program Files\NX10.0\UGOPEN\vs_files\ VCVC...

分享实践与思考 6456

python对ug进行二次开发_UG/NX8.0 二次开发与Visual Studio的

NX8.0VS2010置 (NX其它版本同理)(1)系统安装置1.1、安装UG ,安装VS,假设ug安装目录 D:Program FilesNX10.0假设VS安装目录 D:Program FilesMicrosoft Visual Studio 10.01.2、拷贝D:Program FilesNX10.0UGOPENvs_files VCVC#、VB 3个文件夹到 D:Progr...

weixin_39998541的博客 1383

VC6到现代VS:经典MFC项目现代化改造与实战解析

在软件开发和系统维护领域,遗留代码的现代化改造是一个常见且关键的工程实践。其核心原理在于通过兼容性适代码重构和架构升级,让基于旧技术栈(如Visual C++ 6.0和MFC框架)的程序能在现代开发环境中运行并融入新生态。这项技术的价值不仅在于保护历史代码资产,更在于深入理解Windows编程的底层机制、软件设计模式的演变,以及将经典问题解决方案迁移到现代技术栈的能力。典型的应用场景包括对历史项目进行维护升级、学习经典框架设计思想,以及将成熟的业务逻辑从过时的界面框架中剥离并复用。本文将以一本经典编程书

HJ921004的博客 442
下一篇: 编程笔记2014年2月28日22:14:04
牧之丶
博客等级 码龄16年 293粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值