• 大小: 17.78MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-18
  • 语言: C/C++
  • 标签: Visual  

资源简介

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个文件信息

评论

共有 条评论