资源简介
Visual C++数字图像处理(第二版)PDF
本书主要讲述如何使用Visual C++进行数字图像处理。全书共11章,分别介绍了图像的点运算、几何变换、正交变换、图像增强、腐蚀算法、膨胀算法、细化算法、边缘检测与提取、轮廓跟踪、图像分析、图像复原和图像的压缩编码技术,对每种常用的数字图像处理方法,本书都提供了完整的源代码。
本书内容丰富,叙述详细,实用性强,适合于数字图像处理工作者阅读参考。
第一章 图像及数字处理 1
1.1 引言 1
1.2 数字图像处理概述 1
第二章 Visual C++ 数字图像编程基础 4
2.1 图像和调色板 4
2.1.1 图像 4
2.1.2 调色板 5
2.1.3 色彩系统 6
2.1.4 灰度图 7
2.2 GDI位图 8
2.2.1 从资源中装入GDI位图 8
2.2.2 伸缩位图 11
2.3 设备无关位图(DIB) 12
2.3.1 BMP文件中DIB的结构 12
2.3.2 DIB访问函数 15
2.3.3 构造自己的DIB函数库 20
2.3.4 使用DIB读写BMP文件示例 36
第三章 图像的点运算 78
3.1 灰度直方图 78
3.1.1 灰度直方图的定义 78
3.1.2 编程绘制灰度直方图 80
3.2 灰度的线性变换 92
3.2.1 理论基础 92
3.2.2 Visual C++编程实现 93
3.3 灰度的阈值变换 110
3.3.1 理论基础 110
3.3.2 Visual C++编程实现 110
3.4 灰度的窗口变换 120
3.4.1 理论基础 120
3.4.2 Visual C++编程实现 122
3.5 灰度拉伸 134
3.5.1 理论基础 134
3.5.2 Visual C++编程实现 135
3.6 灰度均衡 150
3.6.1 理论基础 150
3.6.2 Visual C++编程实现 151
第四章 图像的几何变换 156
4.1 图像的平移 156
4.1.1 理论基础 156
4.1.2 Visual C++编程实现 158
4.2 图像的镜像变换 169
4.2.1 理论基础 169
4.2.2 Visual C++编程实现 169
4.3 图像的转置 176
4.3.1 理论基础 177
4.3.2 Visual C++编程实现 177
4.4 图像的缩放 181
4.4.1 理论基础 182
4.4.2 Visual C++编程实现 183
4.5 图像的旋转 188
4.5.1 理论基础 189
4.5.2 Visual C++编程实现 191
4.6 插值算法简介 199
4.6.1 最邻近插值 199
4.6.2 双线性插值 199
4.6.3 高阶插值 206
第五章 图像的正交变换 207
5.1 傅立叶变换 207
5.1.1 傅立叶变换的基本概念 207
5.1.2 傅立叶变换的性质 208
5.1.3 离散傅立叶变换 211
5.1.4 离散傅立叶变换的性质 212
5.1.5 快速傅立叶变换 217
5.1.6 Visual C++编程实现图像傅立叶变换 225
5.2 离散余弦变换 233
5.2.1 离散余弦变换的基本概念 233
5.2.2 Visual C++编程实现图像离散余弦变换 235
5.3 沃尔什变换 244
5.3.1 沃尔什函数 244
5.3.2 沃尔什变换 246
5.3.3 离散沃尔什-哈达玛变换 247
5.3.4 快速沃尔什-哈达玛变换 247
5.3.5 Visual C++编程实现图像沃尔什-哈达玛变换 252
第六章 图像的增强 262
6.1 图像的灰度修正 263
6.2 图像的平滑 263
6.2.1 模板操作 263
6.2.2 图像平滑理论基础 268
6.2.3 Visual C++编程实现 268
6.3 中值滤波 281
6.3.1 理论基础 281
6.3.2 Visual C++编程实现 282
6.4 图像的锐化 293
6.4.1 梯度锐化 293
6.4.2 拉普拉斯锐化 299
6.4.3 高通滤波器 302
6.5 伪彩色编码 305
第七章 数字图像腐蚀、膨胀和细化算法 335
7.1 数学形态学 335
7.1.1 什么是数学形态学 335
7.1.2 数学形态学中的基本符号和术语 335
7.2 图像腐蚀(Erosion) 338
7.2.1 基本概念 338
7.2.2 Visual C++编程实现 344
7.3 图像膨胀(Dilation) 354
7.3.1 基本概念 354
7.3.2 腐蚀
代码片段和文件信息
//**********************************************************************
//
// AIBAPI.CPP
//
// Source file for Device-Independent Bitmap (DIB) API.
//
//**********************************************************************
#define STRICT // enable strict type checking
#include “stdafx.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “dibapi.h“
////////////////////////////////////////////////////////////////////////////////////
// Local use only function prototypes
////////////////////////////////////////////////////////////////////////////////////
BOOL CopyColorTable(LPBITMAPINFO lpTarget LPBITMAPINFO lpSource HPALETTE hPalSrc);
void DecreaseContrast(BYTE *pByte const int Level const float Grad);
void IncreaseContrast(BYTE *pByte const int Low const int High const float Grad);
double Value(double n1 double n2 double hue);
HGLOBAL DitherImage(LPBYTE lpImageData WORD Width WORD Height);
void DitherLine(WORD Width LPBYTE pLine1 LPBYTE pLine2);
////////////////////////////////////////////////////////////////////////////////////
/*************************************************************************
*
* CreateDIB()
*
* Parameters:
*
* DWORD dwWidth - Width for new bitmap in pixels
* DWORD dwHeight - Height for new bitmap
* WORD wBitCount - Bit Count for new DIB (1 4 8 or 24)
*
* Return Value:
*
* HDIB - Handle to new DIB
*
* Description:
*
* This function allocates memory for and initializes a new DIB by
* filling in the BITMAPINFOHEADER allocating memory for the color
* table and allocating memory for the bitmap bits. As with all
* HDIBs the header colortable and bits are all in one contiguous
* memory block. This function is similar to the CreateBitmap()
* Windows API.
*
* The colortable and bitmap bits are left uninitialized (zeroed) in the
* returned HDIB.
*
*
************************************************************************/
HDIB CreateDIB(DWORD dwWidth DWORD dwHeight WORD wBitCount)
{
BITMAPINFOHEADER bi; // bitmap header
LPBITMAPINFOHEADER lpbi; // pointer to BITMAPINFOHEADER
DWORD dwLen; // size of memory block
HDIB hDIB;
DWORD dwBytesPerLine; // Number of bytes per scanline
// Make sure bits per pixel is valid
if (wBitCount <= 1)
wBitCount = 1;
else if (wBitCount <= 4)
wBitCount = 4;
else if (wBitCount <= 8)
wBitCount = 8;
else if (wBitCount <= 24)
wBitCount = 24;
else
wBitCount = 4; // set default value to 4 if parameter is bogus
// initialize BITMAPINFOHEADER
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 196309 2004-07-30 19:17 Visual C++数字图像处理(第二版)光盘\dibapi.cpp
文件 7929 2004-07-30 19:17 Visual C++数字图像处理(第二版)光盘\dibapi.h
文件 16334 2000-12-11 07:12 Visual C++数字图像处理(第二版)光盘\源代码\cdib.cpp
文件 1906 1997-03-25 00:39 Visual C++数字图像处理(第二版)光盘\源代码\cdib.h
文件 3159 2000-12-27 22:25 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphClose.cpp
文件 1675 2000-12-27 22:25 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphClose.h
文件 3200 2000-12-21 22:41 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphDilation.cpp
文件 1708 2000-12-21 22:39 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphDilation.h
文件 3187 2000-12-21 21:46 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphErosion.cpp
文件 1697 2001-02-14 03:20 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphErosion.h
文件 3142 2000-12-22 01:14 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphOpen.cpp
文件 1664 2000-12-22 00:47 Visual C++数字图像处理(第二版)光盘\源代码\cDlgMorphOpen.h
文件 51320 2001-03-25 23:07 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.aps
文件 18056 2001-03-25 23:13 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.clw
文件 4307 2000-12-11 20:35 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.cpp
文件 8572 2001-03-25 23:50 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.dsp
文件 535 2001-01-15 17:33 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.dsw
文件 1345 2000-12-06 06:52 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.h
文件 852992 2001-03-25 23:50 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.ncb
文件 5210 2001-03-25 23:37 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.plg
文件 43164 2001-02-22 23:11 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.rc
文件 7742 2001-01-16 22:54 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1Doc.cpp
文件 2065 2001-02-14 18:22 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1Doc.h
文件 41641 2001-02-14 03:14 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1.rc.bak
文件 95792 2001-02-23 03:08 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1View.cpp
文件 4079 2001-02-22 23:11 Visual C++数字图像处理(第二版)光盘\源代码\ch1_1View.h
文件 1879 2000-12-06 06:52 Visual C++数字图像处理(第二版)光盘\源代码\ChildFrm.cpp
文件 1451 2000-12-06 06:52 Visual C++数字图像处理(第二版)光盘\源代码\ChildFrm.h
文件 65041 2001-01-07 07:01 Visual C++数字图像处理(第二版)光盘\源代码\ColorTable.h
文件 13890 2001-01-12 06:20 Visual C++数字图像处理(第二版)光盘\源代码\detect.cpp
............此处省略187个文件信息
相关资源
- Visual C++6.0完整版
- 《Visual C++开发实战1200例第2卷》+源代
- Visual C++实践与提高-COM和COM+篇高清p
- Visual C++2010 CLR开发电子书+源程序
- Visual C++2013入门经典源码及习题答案
- Visual c++数字图像处理典型算法及源代
- 21天学通C++(第五版) vs2008程序打包
- visual Studio2017使用MFC & WebBrowser控件的
- VisualC++面向对象与可视化程序设计习
- Visual C++数字图像识别技术典型案例
- Microsoft Visual C++ 2019 Redistributable wind
- Visual C++网络通信协议分析与应用实现
- Visusl C++2013 从入门到精通 光盘 精简
- Visual.C++.编程全能词典
- 《Visual C++数字图像处理典型案例详解
- Visual C++信息系统开发精选 光盘
- 应用opencv库项目(Visual Studioc++)的
- Visual.C++数字图像处理开发入门与编程
- Visual C++数字图像处理技术详解 完整版
- Visual C++ SQL Server数据库开发与
- 数字图像处理与机器视觉Visual C++与
- ]Visual C++网络编程开发与实战-清华大
- Visual C++实用程序100例
- Visual C++ 6.0安装包
- Visual C++ 2013入门经典 第7版 [美霍尔顿
- Visual Studio C#数据库开发经典案例
- Visual C++开发实战1200例(第2卷).(配
- Visual C++ 20082010201220132015(x86 x64)
- Visual C++串口通信及测控应用详解
- 精通visual c++图像处理编程(第三版)
评论
共有 条评论