#用Visual C++实现图像双线性插值法等比例缩放
在数字图像处理中,图像的缩放是基本的操作。下面介绍利用Visual C++ MFC多文档应用程序对话框,基于双线性插值法来实现图像缩放的功能,本实验采用Visual Studio 2017完成。
MFC多文档应用程序的建立步骤略,代码中已经提前加入了图像的读取功能(在Doc类中,可在大部分Visual C++数字图像处理参考书中找到源代码)。
先添加一个对话框,在资源视图中右键点击menu,点击插入dialog即可
插入的对话框最好改一下ID,比如我这里叫ID_Zoom。再向其中添加一个Edit Control控件用于输入缩放比例因子,同样最好修改一下ID(我这里叫IDC_Ratio),旁边再加一个static text文本框用作说明。
然后需要为该对话框添加一个类,类名自定。基类可选择CDialog或CDialogEx,后者是前者的扩展类,具有CDialog的全部功能和一些新功能,这里我选择的是CDialog。
创建完成后在该对话框类的头文件中加入成员变量Zoom,为缩放比例,类型为double。关于为新创建的类添加成员变量和成员函数,既可以直接在类的头文件中声明,也可以用类向导创建。由于前一种方法需要自行添加消息响应,比较麻烦,因此推荐直接利用类向导添加,方法为右键点击对话框空白处,选择添加变量,在弹出的“添加控件变量”对话框中为相应的控件(此处为IDC_Ratio,即Edit Control控件)添加变量,记得将“类别”设置为“值”,变量类型改为double
下一步在资源视图menu中添加相应事件,并为其添加事件处理程序
接下来就开始正式编写程序。
首先要明白一点,位图作为若干个像素点的集合,在缩放过