资源简介
高性能的blob分析代码,在缺陷检测,目标定位中有着重要应用。希望对大家有帮助。

代码片段和文件信息
// cvblobDLL.cpp
// A C style dynamic library (DLL) to encapsulate CvBlob functions
// Copyright (C) 2010 by Giandomenico De Sanctis
// gidesay@yahoo.it
// Use CvBlob C++ library: Copyright (C) 2007 by Crist骲al Carnero Li襻n grendel.ccl@gmail.com
#include
#include “stdafx.h“
#include “cvblobDLL.h“
#include “cvblob.h“
using namespace cvb;
#define MIN_HOLE_POINTS 10
typedef std::vector memVect;
memVect pAllocatedMem;
int nAllocatedMem=0;
void* cvBlobDAlloc(int bytes)
{
void* p = malloc(bytes);
if (p) {
pAllocatedMem.push_back(p);
nAllocatedMem++;
};
return p;
};
CVBLOBDLL_API CDECL void cvBlobDRelease()
{
CV_FUNCNAME( “cvBlobDRelease“ );
__BEGIN__;
memVect::const_iterator costIter = pAllocatedMem.begin();
for(; costIter != pAllocatedMem.end(); costIter++)
{
void* P = (void*)(*costIter);
free(P);
};
pAllocatedMem.clear();
nAllocatedMem = 0;
__END__;
};
BOOLEAN cvBlobDContour(CvSeq** seqCont const CvContourChainCode blobListElem CvMemStorage * memstor)
{
BOOLEAN res = FALSE;
CV_FUNCNAME( “cvBlobDContour“ );
__BEGIN__;
if (( !seqCont ) || ( !(&blobListElem) ))
CV_ERROR( CV_StsNullPtr ““ );
*seqCont = NULL;
{ // init block with iterators
CvContourPolygon* pPolyg = cvConvertChainCodesToPolygon(&blobListElem);
if (pPolyg->size() == 0) { delete pPolyg; return res; };
// simplify a bit the contour
CvContourPolygon* pContour = cvSimplifyPolygon(pPolyg 5.0);
delete pPolyg;
CvSeq* seqpoints = NULL;
seqpoints = cvCreateSeq(CV_SEQ_CONTOUR sizeof(CvSeq) sizeof(CvPoint) memstor);
CvPoint* pNewPoint = (CvPoint*) cvBlobDAlloc(sizeof(CvPoint)*pContour->size());
if (( !pNewPoint ) )
CV_ERROR( CV_StsNullPtr “Not enough memory for contour points“ );
CvContourPolygon::const_iterator pcontIter = pContour->begin();
for(; pcontIter != pContour->end(); pcontIter++)
{
pNewPoint->x = (*pcontIter).x;
pNewPoint->y = (*pcontIter).y;
void* newElem = (void*) cvSeqPush((CvSeq*) seqpoints (void*) pNewPoint);
pNewPoint++;
};
*seqCont = seqpoints;
delete pContour;
}; // end block with iterators
__END__;
return res;
};
CVBLOBDLL_API CDECL unsigned int cvBlobDLabel
(IplImage const *img IplImage *imgOut CvMemStorage * memstor CvSeq** sblobs
int minArea int flags const IplImage* colorImg)
{
int res;
CvBlobs lblobs;
CV_FUNCNAME( “cvBlobDLabel“ );
__BEGIN__;
if (( !memstor ) || ( !img ) || ( !imgOut ))
CV_ERROR( CV_StsNullPtr ““ );
if ( !CV_IS_STORAGE( memstor ))
CV_ERROR( CV_StsBadArg “1st param not a CvMemStorage“ );
if ( !CV_IS_IMAGE( img ))
CV_ERROR( CV_StsBadArg “2st param not an IplImage“ );
if ( !CV_IS_IMAGE( imgOut ))
CV_ERROR( CV_StsBadArg “3st param not an IplImage“ );
if ( (colorImg) && (!CV_IS_IMAGE( colorImg )) )
CV_ERROR( CV_StsBadArg “colorImg param not an IplImage“ );
res = cvLabel(img imgOut lblobs);
if (minArea<10)
minArea = 10;
cvFilterByArea(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-01-17 12:57 cvblob\
文件 6185 2011-01-26 18:48 cvblob\CMakeLists.txt
目录 0 2014-01-17 12:57 cvblob\CMakesc
文件 585 2010-11-12 20:21 cvblob\CMakesc
文件 35147 2008-09-08 16:20 cvblob\COPYING
文件 7639 2008-09-08 16:20 cvblob\COPYING.LESSER
文件 6130 2012-05-25 18:07 cvblob\ChangeLog
文件 56244 2009-09-22 18:50 cvblob\Doxyfile
文件 2014 2011-03-11 02:58 cvblob\README
目录 0 2014-01-17 12:57 cvblob\contrib\
目录 0 2014-01-17 12:57 cvblob\contrib\cvBlobDLL\
文件 531 2010-12-17 23:41 cvblob\contrib\cvBlobDLL\README
目录 0 2014-01-17 12:57 cvblob\contrib\cvBlobDLL\TestDLL\
目录 0 2014-11-15 17:27 cvblob\contrib\cvBlobDLL\TestDLL\Debug\
文件 1302 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\ReadMe.txt
目录 0 2014-11-15 17:27 cvblob\contrib\cvBlobDLL\TestDLL\Release\
文件 1731 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\TestDLL.c
文件 4964 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\TestDLL.vcproj
文件 8661 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\imgout.png
文件 294 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\stdafx.cpp
文件 320 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\stdafx.h
文件 765 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\targetver.h
文件 3433 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\TestDLL\test.png
目录 0 2014-01-17 12:57 cvblob\contrib\cvBlobDLL\cvblobDLL\
目录 0 2014-11-15 17:27 cvblob\contrib\cvBlobDLL\cvblobDLL\Debug\
目录 0 2014-11-15 17:27 cvblob\contrib\cvBlobDLL\cvblobDLL\Release\
文件 5237 2011-05-26 17:38 cvblob\contrib\cvBlobDLL\cvblobDLL\cvblobDLL.cpp
文件 2968 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\cvblobDLL\cvblobDLL.h
文件 1350 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\cvblobDLL\cvblobDLL.sln
文件 39936 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\cvblobDLL\cvblobDLL.suo
文件 5494 2010-12-17 20:57 cvblob\contrib\cvBlobDLL\cvblobDLL\cvblobDLL.vcproj
............此处省略28个文件信息
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- vue实现导出Excel的两个js文件-Blob+Exp
- Blob.js+Export2Excel.js
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
评论
共有 条评论