• 大小: 36.46MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-29
  • 语言: C/C++
  • 标签: 图像处理  

资源简介

图像处理课设,包括灰度阈值变换、灰度的窗口变换、灰度拉伸、图像的直方图均衡化、滤镜、图像的膨胀,腐蚀,开启,闭合,求内边界,求外边界等操作

资源截图

代码片段和文件信息

// MyDib.cpp: implementation of the CDib class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Dib.h“

#include 

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

/*
 * Dib文件头标志(字符串“BM“)
 */
#define DIB_MARKER   ((WORD) (‘M‘ << 8) | ‘B‘)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDib::CDib()
{
InitMembers();
}

CDib::~CDib()
{
ClearMemory();
}

/*************************************************************************
 * 函数名称:DrawDib()
 * 参数说明:
 *   HDC hDC,输出设备DC
 *   LPRECT lpDCRect,绘制矩形区域
 *   HGLOBAL hDIB ,DIB对象的句柄
 *   LPRECT lpDIBRect ,DIB的输出区域
 *   CPalette* pPal,调色板的指针
 * 函数类型:BOOL
 * 函数功能:该函数主要用来绘制DIB对象   
 ************************************************************************/

BOOL CDib::DrawDib(HDC     hDC
LPRECT  lpDCRect
HGLOBAL    hDIB
LPRECT  lpDIBRect
CPalette* pPal)
{
BOOL     bSuccess=FALSE;      // 重画成功标志
HPALETTE hOldPal=NULL;        // 以前的调色板
if (hDIB == NULL)// 判断是否是有效的DIB对象
{
return FALSE;// 不是,则返回
}
lpdib  = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 锁定DIB
lpDIBBits = GetBits(lpdib);// 找到DIB图象像素起始位置
if (pPal != NULL)// 获取DIB调色板,并选取到设备环境中它
{
HPALETTE hPal = (HPALETTE) pPal->m_hobject;
hOldPal = ::SelectPalette(hDC hPal TRUE);
}
::SetStretchBltMode(hDC COLORONCOLOR);// 设置显示模式
bSuccess = ::StretchDIBits(hDC // 设备环境句柄
   lpDCRect->left                 //目标X坐标
   lpDCRect->top                  // 目标Y坐标
   GetRectWidth(lpDCRect)            // 目标宽度
   GetRectHeight(lpDCRect)           // 目标高度
   lpDIBRect->left                // 源X坐标
   lpDIBRect->top                 // 源Y坐标
   GetRectWidth(lpDIBRect)           // 源宽度
   GetRectHeight(lpDIBRect)          // 源高度
   lpDIBBits                      // 指向dib像素的指针
   (LPBITMAPINFO)lpdib         // 指向位图信息结构的指针
   DIB_RGB_COLORS                 // 使用的颜色数目
   SRCCOPY);                       // 光栅操作类型
::GlobalUnlock(hDIB); // 解除锁定
if (hOldPal != NULL)// 恢复系统调色板
{
::SelectPalette(hDC hOldPal TRUE);
}
return bSuccess;
}

/*************************************************************************
 * 函数名称:ConstructPalette(HGLOBAL hDIB CPalette* pPal)
 * 函数参数:
 *   HGLOBAL hDIB,DIB对象的句柄
 *   CPalette* pPal,调色板的指针
 * 函数类型:BOOL
 * 函数说明:该函数按照DIB创建一个逻辑调色板  
 ************************************************************************/

BOOL CDib::ConstructPalette(HGLOBAL hDIB CPalette* pPal)
{

HANDLE hLogPal;// 逻辑调色板的句柄
int iLoop;// 循环变量
BOOL bSuccess = FALSE;// 创建结果
if (hDIB == NULL)//判断是否是有效的DIB对象
{
return FALSE;// 返回FALSE
}
lpdib = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 锁定DI

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     308736  2017-09-15 23:26  imgtest\Debug\imgtest.exe

     文件    2170620  2017-09-15 23:26  imgtest\Debug\imgtest.ilk

     文件    5827584  2017-09-15 23:26  imgtest\Debug\imgtest.pdb

     文件     780831  2009-07-14 13:32  imgtest\imgtest\1.bmp

     文件          1  2009-08-31 02:32  imgtest\imgtest\ClassDiagram1.cd

     文件       4378  2017-05-02 16:22  imgtest\imgtest\Debug\cl.command.1.tlog

     文件      61886  2017-05-02 16:22  imgtest\imgtest\Debug\CL.read.1.tlog

     文件       2410  2017-05-02 16:22  imgtest\imgtest\Debug\CL.write.1.tlog

     文件      29202  2017-05-02 16:22  imgtest\imgtest\Debug\Dib.obj

     文件      25343  2017-09-15 23:26  imgtest\imgtest\Debug\DlgDisp.obj

     文件      40434  2017-09-15 23:26  imgtest\imgtest\Debug\DlgInverse_V.obj

     文件      32676  2017-09-15 23:26  imgtest\imgtest\Debug\DlgInvert.obj

     文件      39348  2017-09-15 23:26  imgtest\imgtest\Debug\DlgLchan.obj

     文件      25219  2017-09-15 23:26  imgtest\imgtest\Debug\DlgLight.obj

     文件      38887  2017-09-15 23:26  imgtest\imgtest\Debug\DlgLinvert.obj

     文件      24818  2017-09-15 23:26  imgtest\imgtest\Debug\DlgMedian.obj

     文件      38764  2017-09-15 23:26  imgtest\imgtest\Debug\DlgVchan.obj

     文件      25506  2017-09-15 23:26  imgtest\imgtest\Debug\DSelfCtr.obj

     文件          2  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.exe.embed.manifest

     文件         68  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.exe.embed.manifest.res

     文件        640  2017-09-15 23:26  imgtest\imgtest\Debug\imgtest.exe.intermediate.manifest

     文件         75  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.lastbuildstate

     文件       2959  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.log

     文件      57179  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.obj

     文件   33685504  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.pch

     文件      85012  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.res

     文件          0  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.unsuccessfulbuild

     文件        713  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.vcxprojResolveAssemblyReference.cache

     文件          0  2017-05-02 16:22  imgtest\imgtest\Debug\imgtest.write.1.tlog

     文件      68531  2017-05-02 16:22  imgtest\imgtest\Debug\imgtestDoc.obj

............此处省略272个文件信息

评论

共有 条评论