資源簡介
本人做的一個數字圖像處理的綜合性實驗,用VC++編程實現6個常用的邊緣檢測算子:羅伯特邊緣檢測算子(Robert)、索貝爾邊緣檢測算子(Sobel)、普瑞維特邊緣檢測算子(Prewitt)、拉普拉斯邊緣檢測算子(Laplacian)、凱西邊緣檢測算子(Kirsch)、高斯-拉普拉斯邊緣檢測算子(LOG)。里邊附帶有源代碼,同大家分享,相互學習!!

代碼片段和文件信息
//??dibapi.cpp
//
//??Source?file?for?Device-Independent?Bitmap?(DIB)?API.??Provides
//??the?following?functions:
//
//??PaintDIB()??????????-?Painting?routine?for?a?DIB
//??CreateDIBPalette()??-?Creates?a?palette?from?a?DIB
//??FindDIBBits()???????-?Returns?a?pointer?to?the?DIB?bits
//??DIBWidth()??????????-?Gets?the?width?of?the?DIB
//??DIBHeight()?????????-?Gets?the?height?of?the?DIB
//??PaletteSize()???????-?Gets?the?size?required?to?store?the?DIB‘s?palette
//??DIBNumColors()??????-?Calculates?the?number?of?colors
//????????????????????????in?the?DIB‘s?color?table
//??CopyHandle()????????-?Makes?a?copy?of?the?given?global?memory?block
//
//?This?is?a?part?of?the?Microsoft?Foundation?Classes?C++?library.
//?Copyright?(C)?1992-1998?Microsoft?Corporation
//?All?rights?reserved.
//
//?This?source?code?is?only?intended?as?a?supplement?to?the
//?Microsoft?Foundation?Classes?Reference?and?related
//?electronic?documentation?provided?with?the?library.
//?See?these?sources?for?detailed?information?regarding?the
//?Microsoft?Foundation?Classes?product.
#include?“stdafx.h“
#include?“dibapi.h“
#include?
#include?
/*************************************************************************
?*
?*?PaintDIB()
?*
?*?Parameters:
?*
?*?HDC?hDC??????????-?DC?to?do?output?to
?*
?*?LPRECT?lpDCRect??-?rectangle?on?DC?to?do?output?to
?*
?*?HDIB?hDIB????????-?handle?to?global?memory?with?a?DIB?spec
?*????????????????????in?it?followed?by?the?DIB?bits
?*
?*?LPRECT?lpDIBRect?-?rectangle?of?DIB?to?output?into?lpDCRect
?*
?*?CPalette*?pPal???-?pointer?to?CPalette?containing?DIB‘s?palette
?*
?*?Return?Value:
?*
?*?BOOL?????????????-?TRUE?if?DIB?was?drawn?FALSE?otherwise
?*
?*?Description:
?*???Painting?routine?for?a?DIB.??Calls?StretchDIBits()?or
?*???SetDIBitsToDevice()?to?paint?the?DIB.??The?DIB?is
?*???output?to?the?specified?DC?at?the?coordinates?given
?*???in?lpDCRect.??The?area?of?the?DIB?to?be?output?is
?*???given?by?lpDIBRect.
?*
?************************************************************************/
BOOL?WINAPI?PaintDIB(HDC?????hDC
LPRECT??lpDCRect
HDIB????hDIB
LPRECT??lpDIBRect
CPalette*?pPal)
{
LPSTR????lpDIBHdr;????????????//?Pointer?to?BITMAPINFOHEADER
LPSTR????lpDIBBits;???????????//?Pointer?to?DIB?bits
BOOL?????bSuccess=FALSE;??????//?Success/fail?flag
HPALETTE?hPal=NULL;???????????//?Our?DIB‘s?palette
HPALETTE?hOldPal=NULL;????????//?Previous?palette
/*?Check?for?valid?DIB?handle?*/
if?(hDIB?==?NULL)
return?FALSE;
/*?Lock?down?the?DIB?and?get?a?pointer?to?the?beginning?of?the?bit
?*??buffer
?*/
lpDIBHdr??=?(LPSTR)?::GlobalLock((HGLOBAL)?hDIB);
lpDIBBits?=?::FindDIBBits(lpDIBHdr);
//?Get?the?DIB‘s?palette?then?select?it?into?DC
if?(pPal?!=?NULL)
{
hPal?=?(HPALETTE)?pPal->m_hobject;
//?Select?as?background?since?we?have
//?already?realized?in?forground?if?needed
hOldPal?=?::SelectPalette(hDC?hPa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????66614??2009-12-31?00:35??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\Robert.bmp
?????文件??????66614??2009-12-31?00:35??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\Sobel.bmp
?????文件??????66614??2004-06-29?22:59??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\原始圖像.bmp
?????文件??????66614??2009-12-31?00:36??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\Prewitt.bmp
?????文件??????66614??2009-12-31?01:56??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\Laplacian.bmp
?????文件??????66614??2009-12-31?00:38??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\Kirsch.bmp
?????文件??????66614??2009-12-31?00:38??VC++源程序——實現6種灰度圖像邊緣檢測算子\實驗原始圖片和檢測結果圖片\LOG.bmp
?????文件??????15045??2007-11-28?01:19??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\dibapi.cpp
?????文件???????1663??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\dibapi.h
?????文件???????4958??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\dibdoc.cpp
?????文件???????1464??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\dibdoc.h
?????文件???????4163??2009-12-31?20:34??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.clw
?????文件???????4013??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.cpp
?????文件????????537??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.dsw
?????文件???????1150??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.h
?????文件???????6191??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.mak
?????文件??????91136??2009-12-31?20:47??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.ncb
?????文件????????789??2009-12-31?20:08??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.plg
?????文件???????9333??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.rcm
?????文件???????3355??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\mainfrm.cpp
?????文件???????1178??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\mainfrm.h
?????文件????????627??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\makefile
?????文件???????5838??2007-09-22?17:15??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\myfile.cpp
?????文件????????628??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\stdafx.cpp
?????文件????????685??2001-08-29?08:00??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\stdafx.h
?????文件????????952??2009-12-31?00:24??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\resource.h
?????文件??????45008??2009-12-31?00:24??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\DibLook.aps
?????文件??????10912??2009-12-31?00:24??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\DibLook.rc
?????文件???????1747??2009-12-31?01:14??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\dibview.h
?????文件???????4915??2009-12-31?01:59??VC++源程序——實現6種灰度圖像邊緣檢測算子\diblook\diblook.dsp
............此處省略32個文件信息
- 上一篇:PageRank/C++
- 下一篇:dlib_18.18
評論
共有 條評論