• 大小: 4.57MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-07
  • 语言: 其他
  • 标签:

资源简介

检测两幅图像的特征点,然后计算出特征点之间的距离,距离以像素为单位,只能检测灰度图,并可以对图像做几何与灰度值的处理

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “windowsx.h“
#include “math.h“
#include “Dib.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;
    }
}

void CDib::SetWidth(UINT width)
{
m_pBitmapInfoHeader->biWidth=width;
}

void CDib::SetHeight(UINT height)
{
m_pBitmapInfoHeader->biHeight=height;
}

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;
}
    
BYTE* CDib::GetData()
{
    return m_pData;
}

RGBQUAD* CDib::GetRGB()
{
    return m_pRGB;
}

BITMAPINFO* CDib::GetInfo()
{
    return m_pBitmapInfo;
}

WORD CDib::PaletteSize(LPBYTE lpDIB) 

    return (DIBNumColors(lpDIB) * sizeof(RGBTRIPLE)); 


WORD CDib::DIBNumColors(LPBYTE lpDIB) 

    WORD wBitCount;  // DIB bit coun

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

     文件       2695  2011-09-02 14:09  dutu\dutu.clw

     文件       4263  2011-05-19 13:18  dutu\ReadMe.txt

     文件       1334  2011-05-19 13:18  dutu\dutu.h

     文件       1054  2011-05-19 13:18  dutu\StdAfx.h

     文件        206  2011-05-19 13:18  dutu\StdAfx.cpp

     文件       1689  2011-05-26 11:06  dutu\MainFrm.h

     文件       3019  2011-05-26 11:06  dutu\MainFrm.cpp

     文件        533  2011-05-19 13:18  dutu\dutu.dsw

     文件     246784  2011-09-02 14:10  dutu\dutu.ncb

     文件        242  2011-09-02 14:09  dutu\dutu.plg

     文件       1625  2011-05-19 13:41  dutu\DutuWiew1.h

     文件       4954  2011-05-19 13:41  dutu\DutuWiew1.cpp

     文件       4173  2011-05-20 15:31  dutu\dutu.cpp

     文件        953  2011-05-20 15:38  dutu\pingyi.cpp

     文件        914  2011-05-20 16:12  dutu\Dib.h

     文件       3936  2011-05-20 16:13  dutu\Dib.cpp

     文件       1190  2011-05-20 16:16  dutu\pingyi.h

     文件      10977  2011-05-23 14:09  dutu\dutu.rc

     文件       1104  2011-05-23 10:18  dutu\Resource.h

     文件      28548  2011-08-27 09:42  dutu\dutu.aps

     文件       4892  2011-05-24 15:39  dutu\dutu.dsp

     文件       2015  2011-05-25 15:36  dutu\dutuDoc.cpp

     文件       1460  2011-05-20 19:55  dutu\dutuDoc.h

     文件       1031  2011-05-24 17:13  dutu\JiHeBianHuan.h

     文件      19891  2011-05-24 17:30  dutu\JiHeBianHuan.cpp

     文件       2338  2011-05-26 10:48  dutu\dutuView.h

     文件       9874  2011-05-26 10:50  dutu\dutuView.cpp

     文件     308278  2006-03-01 10:37  dutu\10.bmp

     文件     308278  2006-03-01 10:36  dutu\4.bmp

     文件     308278  2006-03-01 10:37  dutu\6.bmp

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

评论

共有 条评论

相关资源