资源简介
vc++数字图像处理的入门级好书,详细介绍了图像处理的基本知识以及相应的c++实现,通过本书可以全面的学习数字图像处理的全部知识。
代码片段和文件信息
#include “stdafx.h“
#include “cdib.h“
#include “windowsx.h“
#include “math.h“
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
CDib::CDib()
{
size=0;
}
CDib::~CDib()
{
GlobalFreePtr(m_pBitmapInfo);
}
void CDib::LoadFile(const char* dibFileName)
{
strcpy(m_fileNamedibFileName);
CFile dibFile(m_fileName CFile::modeRead);
dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
if (bitmapFileHeader.bfType == 0x4d42)
{
DWORD fileLength = dibFile.GetLength();
size = fileLength -sizeof(BITMAPFILEHEADER);
pDib =(BYTE*)GlobalAllocPtr(GMEM_MOVEABLE size);
dibFile.Read((void*)pDib size);
dibFile.Close();
m_pBitmapInfo = (BITMAPINFO*) pDib;
m_pBitmapInfoHeader = (BITMAPINFOHEADER*) pDib;
m_pRGB = (RGBQUAD*)(pDib +
m_pBitmapInfoHeader->biSize);
int m_numberOfColors = GetNumberOfColors();
if (m_pBitmapInfoHeader->biClrUsed == 0)
m_pBitmapInfoHeader->biClrUsed =
m_numberOfColors;
DWORD colorTableSize = m_numberOfColors *
sizeof(RGBQUAD);
m_pData = pDib + m_pBitmapInfoHeader->biSize
+ colorTableSize;
if (m_pRGB == (RGBQUAD*)m_pData) // No color table
m_pRGB = NULL;
m_pBitmapInfoHeader->biSizeImage = GetSize();
m_valid = TRUE;
}
else
{
m_valid = FALSE;
AfxMessageBox(“This isn‘t a bitmap file!“);
}
}
BOOL CDib::IsValid()
{
return m_valid;
}
char* CDib::GetFileName()
{
return m_fileName;
}
UINT CDib::GetWidth()
{
return (UINT) m_pBitmapInfoHeader->biWidth;
}
UINT CDib::GetHeight()
{
return (UINT) m_pBitmapInfoHeader->biHeight;
}
DWORD CDib::GetSize()
{
if (m_pBitmapInfoHeader->biSizeImage != 0)
return m_pBitmapInfoHeader->biSizeImage;
else
{
DWORD height = (DWORD) GetHeight();
DWORD width = (DWORD) GetWidth();
return height * width;
}
}
UINT CDib::GetNumberOfColors()
{
int numberOfColors;
if ((m_pBitmapInfoHeader->biClrUsed == 0) &&
(m_pBitmapInfoHeader->biBitCount < 9))
{
switch (m_pBitmapInfoHeader->biBitCount)
{
case 1: numberOfColors = 2; break;
case 4: numberOfColors = 16; break;
case 8: numberOfColors = 256;
}
}
else
numberOfColors = (int) m_pBitmapInfoHeader->biClrUsed;
return numberOfColors;
}
DWORD CDib::GetDibWidthBytes()
{
byBitCount=m_pBitmapInfoHeader->biBitCount;
LONG nWidth=m_pBitmapInfoHeader->biWidth;
dwWidthBytes = (DWORD)m_pBitmapInfoHeader->biWidth; //8-bits
if(byBitCount == 1) dwWidthBytes = (nWidth + 7) / 8;
else if(byBitCount == 4) dwWidthBytes = (nWidth + 1) / 2;
else if(byBitCount == 24) dwWidthBytes = 3 * nWidth ;
while((dwWidthBytes & 3) != 0)dwWidthBytes++;
return dwWidthBytes;
}
BYTE* CDib::GetData()
{
r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2007-07-03 23:18 第11章24位彩色\
目录 0 2007-07-03 23:18 第11章24位彩色\color416\
文件 9955 2003-04-09 17:50 第11章24位彩色\color416\CDIB.CPP
文件 934 2003-04-09 17:47 第11章24位彩色\color416\Cdib.h
文件 4900 1998-02-03 11:15 第11章24位彩色\color416\DSPLIT.001
文件 34676 2007-05-21 08:48 第11章24位彩色\color416\DSplit.aps
文件 5353 2007-05-21 13:58 第11章24位彩色\color416\DSPLIT.CLW
文件 4158 2003-04-01 08:51 第11章24位彩色\color416\Dsplit.cpp
文件 5494 2003-04-04 22:43 第11章24位彩色\color416\DSplit.dsp
文件 579 1999-01-28 11:36 第11章24位彩色\color416\DSPLIT.DSW
文件 1366 2003-04-01 08:51 第11章24位彩色\color416\Dsplit.h
文件 943104 2007-05-21 13:58 第11章24位彩色\color416\DSPLIT.NCB
文件 77824 2007-05-21 13:58 第11章24位彩色\color416\DSPLIT.OPT
文件 3552 2007-05-21 13:55 第11章24位彩色\color416\DSPLIT.PLG
文件 15771 2003-06-14 19:02 第11章24位彩色\color416\DSplit.rc
文件 1969 2003-04-14 16:00 第11章24位彩色\color416\DSplitDoc.cpp
文件 1493 2003-04-04 20:25 第11章24位彩色\color416\DSplitDoc.h
文件 3259 2003-04-14 16:32 第11章24位彩色\color416\Dsplitview.cpp
文件 1859 2003-04-03 17:18 第11章24位彩色\color416\Dsplitview.h
文件 6439 1998-03-10 17:18 第11章24位彩色\color416\DYNSPLITTERWND.CPP
文件 1733 2003-04-03 17:02 第11章24位彩色\color416\DYNSPLITTERWND.H
文件 9769 2003-04-14 19:31 第11章24位彩色\color416\DynSplitView2.cpp
文件 2410 2003-04-10 22:43 第11章24位彩色\color416\DynSplitView2.h
文件 970 2003-04-04 21:03 第11章24位彩色\color416\LightDlg.cpp
文件 1194 2003-04-04 21:03 第11章24位彩色\color416\LightDlg.h
文件 3542 2003-04-09 13:20 第11章24位彩色\color416\MAINFRM.CPP
文件 1687 1998-02-03 11:07 第11章24位彩色\color416\MAINFRM.H
文件 30217 2004-09-05 10:16 第11章24位彩色\color416\MakeColorDib.cpp
文件 1010 2004-09-01 09:33 第11章24位彩色\color416\MakeColorDib.h
文件 1022 2003-04-04 21:21 第11章24位彩色\color416\ontrastDlg.cpp
文件 1224 2003-04-04 21:21 第11章24位彩色\color416\ontrastDlg.h
............此处省略687个文件信息
相关资源
- Visual C++视频会议开发技术与源码.ra
- VC++实现浏览器
- 精通Visual C++图像处理编程(PDF & 源代
- 《Visual C++ 6.0 用户界面制作技术与应
- 计算机图形学+配书源代码
- VC++2017 64位
- vc++ MFC 背单词软件毕业设计系统源代
- msdn for vc++6.0
- VC++2010番茄西红柿VAXvirsual assist X完美
- IC卡停车场管理系统源代码
- Vc++编写的计算器简单小程序
- VC++ CLR编写带图形界面的简单计算器
- vc++6.0 绿色版 完整版支持win7,win8系统
- 状态指示灯(VC++6.0源代码)
- 车牌牌照检测识别 VC++和opencv1.0 完整
- VC++100.rar
- VC++窗口和控件自适应屏幕尺寸
- 《Visual C++ 数字图像处理》 谢凤英 高
- 算法与数据结构课件及源代码
- VC基本图像处理源码集
- VC++ 可视化计算器
- MFC/VC++字符串与十六进制码之间互相转
- c++ 图像处理(旋转、水平镜像等)
- 课程信息VC操作Access数据库(实现增删
- VC++ 实现WIFI共享工具 源代码(无线承
- VC++ GDI+ gdiplus应用集
- 细胞统计识别系统
- devc++ 64位最新版本
- VC++基于socket传输文件服务端和客户端
- VC++6.0 WIN7 32位版
评论
共有 条评论