边界追踪中有关轮廓信息统计的函数
来源:互联网 发布:php会员订单系统源码 编辑:程序博客网 时间:2024/05/29 18:34
边界追踪中有关轮廓信息统计的函数
以下为轮廓点的结构体、轮廓信息的结构体和统计轮廓信息的函数,代码如下:
typedef struct Contours{//轮廓点结构体,通过malloc来分配int height;//bmp Y坐标int width;//bmp X坐标int stateFlag;//点类型标志位} contour;typedef struct ContourInfo{//轮廓信息结构体,通过malloc来分配int position;//记录单个轮廓在轮廓点序列中的起始位置int count;//记录单个轮廓的点个数} contourInfo;
contourInfo* contourInformation( contour* _rContours ){int i = 0, j = 0;//i为轮廓点计数器,j为轮廓个数计数器int n = 0;//每个轮廓点数量单独计数的计数器int contour_Count = 30;//初始分配的轮廓数量为30个int temp_Point_Count = 0;//用于临时保存轮廓空间点中第一个点的状态位中保存的轮廓点的总数量contourInfo* contour_Info = NULL;//用于返回的轮廓信息contourInfo* contour_Info_Temp = NULL;//用于轮廓数不足时分配新的轮廓空间temp_Point_Count = _rContours[0].stateFlag;//保存轮廓点的总数量_rContours[0].stateFlag = 1;//暂时把轮廓空间点的第一个点的状态位置1contour_Info = ( contourInfo*)malloc( contour_Count * sizeof( contourInfo) );//先分配10个轮廓的信息空间while ( _rContours[i].height > 0 ){if ( 1 == _rContours[i].stateFlag ){n = 1;//每个轮廓的第一个点contour_Info[j].position = i;//记录第j个轮廓首点在整个轮廓空间点的位置i ++;while ( 0 == _rContours[i].stateFlag ){n ++;i ++;}n ++;//在stateFlag等于2的时候跳出,所以还加上一个点contour_Info[j].count = n;//将该轮廓点的数量保存i ++;//将全局点计数器移动到下一个轮廓的起始位置j ++;//为下一个轮廓位移出新空间if ( j > contour_Count-1 ){//若轮廓数量超出范围,则加入额外轮廓空间contour_Info_Temp = ( contourInfo *)malloc( contour_Count * sizeof( contourInfo) );memcpy( contour_Info_Temp, contour_Info, contour_Count * sizeof( contourInfo) );contour_Info = ( contourInfo *)malloc( (contour_Count + 10) * sizeof( contourInfo) );//多分配10个轮廓memcpy( contour_Info, contour_Info_Temp, contour_Count * sizeof( contourInfo) );contour_Count += 10;free( contour_Info_Temp );}}}_rContours[0].stateFlag = temp_Point_Count;//还原轮廓点总数量到第一个点的标志位return contour_Info;}
0 0
- 边界追踪中有关轮廓信息统计的函数
- 轮廓、边缘、边界的相关函数
- OpenCV轮廓、边缘、边界的相关函数
- 4.轮廓的边界框
- 有关Oracle统计信息的知识点
- opencv c++函数 imgproc模块 22 创建包围轮廓的矩形和圆形边界框
- OpenCV轮廓、边缘、边界的相关函数cv::findContours()等
- MATLAB中处理边界的函数
- MATLAB中处理边界的函数
- Python-OpenCV 处理图像:图像中边界和轮廓检测
- 13.4.3 收集有关地区的统计信息
- 13.4.3 收集有关地区的统计信息
- 13.4.3 收集有关地区的统计信息
- 使用OpenCV提取图形轮廓的边界的代码!
- 创建包围轮廓的矩形和圆形边界框
- 为轮廓创建可倾斜的边界框和椭圆
- CString中有关的函数
- 有关opencv轮廓的几点疑惑
- IOS发送Email的两种方法
- Memcpy越界操作导致free崩溃分析
- 格式化Spring MVC 返回json的Date格式
- Webstorm常用快捷键
- 深入理解C++中public、protected及private用法
- 边界追踪中有关轮廓信息统计的函数
- MySQL concat函数的使用
- 黑马程序员_集合框架Collection
- SQL语句中的limit使用方法
- Javascript事件实例详解
- Java中有两种实现多线程的方式以及两种方式之间的区别
- 华为离职副总裁给任正非的辞职信【受益很多】
- Rails 布局和视图渲染 from RailsGuides
- session同ip不同端口的多个网站session冲突的解决办法