没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言版二值图像统计连通区域
C语言版二值图像统计连通区域
381 浏览量
更新于2023-05-24
评论
收藏 47KB PDF 举报
主要为大家详细介绍了C语言版二值图像统计连通区域的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
资源详情
资源评论
资源推荐

C语言版二值图像统计连通区域语言版二值图像统计连通区域
主要为大家详细介绍了C语言版二值图像统计连通区域的相关资料,具有一定的参考价值,感兴趣的小伙伴们可
以参考一下
连通区标记是最基本的图像处理算法之一。该算法中,按从左至右、从上至下的顺序,对整幅图像进行扫描,通过比较每个前
景像素的邻域进行连通区标记,并创建等效标记列表。最后,合并等效标记列表,并再次扫描图像以更新标记。算法的优点的
是通俗易懂,缺点是需要两次扫描图像,效率不高。
区域生长法利用区域生长的思想,一次生长过程可以标记一整个连通区,只需对图像进行一次扫描就能标记出所有连通区。算
法描述如下:
输入待标记图像bitmap,初始化一个与输入图像同样尺寸的标记矩阵labelmap,一个队列queue以及标记计数labelIndex;按
从左至右、从上至下的顺序扫描bitmap,当扫描到一个未被标记的前景像素p时,labelIndex加1,并在labelmap中标记p(相
应点的值赋为labelIndex),同时,扫描p的八邻域点,若存在未被标记的前景像素,则在labelmap中进行标记,并放入queue
中,作为区域生长的种子;当queue不为空时,从queue中取出一个生长种子点p1,扫描p1的八邻域点,若存在未被标记过的
前景像素,则在labelmap中进行标记,并放入queue中;重复3直至queue为空,一个连通区标记完成;转到2,直至整幅图像
被扫描完毕,得到标记矩阵labelmap和连通区的个数labelIndex。
该算法最坏情况下,将对每个像素点都进行一次八邻域搜索,算法复杂度为O(n)。
typedef struct QNode{
int data;
struct QNode *next;
}QNode;
typedef struct Queue{
struct QNode* first;
struct QNode* last;
}Queue;
void PushQueue(Queue *queue, int data){
QNode *p = NULL;
p = (QNode*)malloc(sizeof(QNode));
p->data = data;
if(queue->first == NULL){
queue->first = p;
queue->last = p;
p->next = NULL;
}
else{
p->next = NULL;
queue->last->next = p;
queue->last = p;
}
}
int PopQueue(Queue *queue){
QNode *p = NULL;
int data;
if(queue->first == NULL){
return -1;
}
p = queue->first;
data = p->data;
if(queue->first->next == NULL){
queue->first = NULL;
queue->last = NULL;
}
else{
queue->first = p->next;
}
free(p);
return data;
}
static int NeighborDirection[8][2] = {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
void SearchNeighbor(unsigned char *bitmap, int width, int height, int *labelmap,
int labelIndex, int pixelIndex, Queue *queue){
int searchIndex, i, length;
labelmap[pixelIndex] = labelIndex;
length = width * height;
for(i = 0;i < 8;i++){
searchIndex = pixelIndex + NeighborDirection[i][0] * width + NeighborDirection[i][1];
if(searchIndex > 0 && searchIndex < length &&
bitmap[searchIndex] == 255 && labelmap[searchIndex] == 0){



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0