资源简介

利用opencv的亚像素级别的边缘检测和获取,添加了原有程序的包含文件和库,可以直接调试运行,个边参数可以根据实际情形修改

资源截图

代码片段和文件信息

#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);//询问系统一秒钟的频率
}

//***************************************************
CHTimer::~CHTimer()
{

}

//***************************************************
//启动计时
void CHTimer::StartTime()
{
QueryPerformanceCounter((LARGE_INTEGER *)&m_lStartTime);
}

//***************************************************
//停止计时
void CHTimer::EndTime()
{
QueryPerformanceCounter((LARGE_INTEGER *)&m_lEndTime);
}

//***************************************************
//获得计时时间(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   //目标图像,即滤波后的图像
  int nThreshold)  //阈值,调用时nThreshold=0,函数使用默认值,否则以该值作为阈值
{
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;
//对边缘点的处理为原值
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[

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

     文件    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个文件信息

评论

共有 条评论