資源簡介
利用opencv的亞像素級別的邊緣檢測和獲取,添加了原有程序的包含文件和庫,可以直接調(diào)試運(yùn)行,個(gè)邊參數(shù)可以根據(jù)實(shí)際情形修改
代碼片段和文件信息
#include?
#include?“cxcore.h“ //OpenCV頭文件
#include?“highgui.h“
#include?“cv.h“?
#include?“ImProcess.h“
//***************************************************
CHTimer::CHTimer()
{
m_lStartTime=0;
m_lEndTime=0;
m_lPersecond=0;
m_fTime=0.0;
QueryPerformanceFrequency((LARGE_INTEGER?*)&m_lPersecond);//詢問系統(tǒng)一秒鐘的頻率
}
//***************************************************
CHTimer::~CHTimer()
{
}
//***************************************************
//啟動(dòng)計(jì)時(shí)
void?CHTimer::StartTime()
{
QueryPerformanceCounter((LARGE_INTEGER?*)&m_lStartTime);
}
//***************************************************
//停止計(jì)時(shí)
void?CHTimer::EndTime()
{
QueryPerformanceCounter((LARGE_INTEGER?*)&m_lEndTime);
}
//***************************************************
//獲得計(jì)時(shí)時(shí)間(ms)以毫秒為單位
double?CHTimer::GetTime()
{
m_fTime=(double)(m_lEndTime-m_lStartTime)/m_lPersecond;
m_fTime=m_fTime*1000;
return?m_fTime;
}
//***************************************************
//濾波算法
void?hFilter(?IplImage*?src???//源圖像
??IplImage*?dst???//目標(biāo)圖像,即濾波后的圖像
??int?nThreshold)??//閾值,調(diào)用時(shí)nThreshold=0,函數(shù)使用默認(rèn)值,否則以該值作為閾值
{
int?nWidth=0nHeight=0;
char*?pSrcData=NULL;
char*?pDstData=NULL;
int?nSrcStep=0nDstStep=0;
int?h=0w=0nh=0nw=0;
????int?nPA[9]nSum1=0nSum2=0nMax=0nTemp=0;
nWidth=src->width-1;
nHeight=src->height-1;
nSrcStep=src->widthStep;
nDstStep=dst->widthStep;
pSrcData=src->imageData;
pDstData=dst->imageData;
if?(nThreshold==0)
nThreshold=30;
//對邊緣點(diǎn)的處理為原值
for?(w=0;w {
((uchar*)pDstData)[w]=((uchar*)pSrcData)[w];
((uchar*)(pDstData+nHeight*nDstStep))[w]=((uchar*)(pSrcData+nHeight*nSrcStep))[w];
}
for?(h=0;h {
((uchar*)(pDstData+h*nDstStep))[0]=((uchar*)(pSrcData+h*nSrcStep))[0];
((uchar*)(pDstData+h*nDstStep))[nWidth]=((uchar*)(pSrcData+h*nSrcStep))[nWidth];
}
for?(h=1;h {
for?(w=1;w {
nPA[0]=((uchar*)(pSrcData+(h-1)*nSrcStep))[w-1];
nPA[1]=((uchar*)(pSrcData+(h-1)*nSrcStep))[w];
nPA[2]=((uchar*)(pSrcData+(h-1)*nSrcStep))[w+1];
nPA[3]=((uchar*)(pSrcData+h*nSrcStep))[w-1];
nPA[4]=((uchar*)(pSrcData+h*nSrcStep))[w];
nPA[5]=((uchar*)(pSrcData+h*nSrcStep))[w+1];
nPA[6]=((uchar*)(pSrcData+(h+1)*nSrcStep))[w-1];
nPA[7]=((uchar*)(pSrcData+(h+1)*nSrcStep))[w];
nPA[8]=((uchar*)(pSrcData+(h+1)*nSrcStep))[w+1];
nSum1=nPA[0]+nPA[3]+nPA[6];
nSum2=nPA[2]+nPA[5]+nPA[8];
nMax=AbsInt(nSum1-nSum2);
nSum1=nPA[0]+nPA[1]+nPA[3];
nSum2=nPA[5]+nPA[7]+nPA[8];
nTemp=AbsInt(nSum1-nSum2);
if?(nTemp>nMax)
nMax=nTemp;
nSum1=nPA[0]+nPA[1]+nPA[2];
nSum2=nPA[6]+nPA[7]+nPA[8];
nTemp=AbsInt(nSum1-nSum2);
if?(nTemp>nMax)
nMax=nTemp;
nSum1=nPA[1]+nPA[2]+nPA[5];
nSum2=nPA[3]+nPA[6]+nPA[7];
nTemp=AbsInt(nSum1-nSum2);
if?(nTemp>nMax)
nMax=nTemp;
if?(nMax {
nTemp=nSum1+nSum2+nPA[
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????1300214??2012-10-25?10:49??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\aifeng.bmp
?????文件??????82526??2012-10-19?16:44??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\alf.bmp
?????文件?????308278??2010-01-07?18:53??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\b1.bmp
?????文件?????308278??2010-01-07?18:54??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\b2.bmp
?????文件?????308278??2010-01-07?18:58??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\b3.bmp
?????文件?????308278??2010-01-07?19:01??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\b4.bmp
?????文件????1229878??2012-10-11?17:03??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\chip-insp-82.bmp
?????文件????1229878??2012-10-11?17:04??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\chip-insp-83.bmp
?????文件????1229878??2012-10-11?17:06??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\chip-insp-86.bmp
?????文件????1229878??2012-10-11?17:07??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\chip-insp-89.bmp
?????文件????1229878??2012-10-11?17:11??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\chip-insp-95.bmp
?????文件??????55272??2006-09-27?20:02??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cv.h
?????文件???????2211??2004-08-05?18:32??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cv.hpp
?????文件??????80482??2006-10-18?21:49??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cv.lib
?????文件?????843824??2006-10-18?21:49??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cv100.dll
?????文件?????598067??2006-10-18?21:50??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cvaux100.dll
?????文件??????49152??2006-10-19?17:16??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cvcam100.dll
?????文件??????41738??2006-07-12?19:47??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cvcompat.h
?????文件??????12868??2005-11-22?21:42??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cvtypes.h
?????文件???????2425??2006-10-12?22:42??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cvver.h
?????文件??????74979??2006-09-20?17:09??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxcore.h
?????文件??????12681??2006-10-06?19:59??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxcore.hpp
?????文件??????81678??2006-10-18?21:49??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxcore.lib
?????文件????1011764??2006-10-18?21:49??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxcore100.dll
?????文件???????8881??2006-09-06?17:24??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxerror.h
?????文件?????131133??2006-10-18?21:50??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxts001.dll
?????文件??????53467??2006-09-08?19:33??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\cxtypes.h
?????文件??????26912??2009-09-15?22:59??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\Debug\ImProcess.obj
?????文件??????21283??2009-09-15?22:59??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\Debug\main.obj
?????文件?????225367??2009-09-15?22:59??亞像素級別的邊緣檢測和獲取\SubPixelEdgeDetection\Debug\SubPixelEdgeDetection.exe
............此處省略47個(gè)文件信息
評論
共有 條評論