手机版

图像分割(阈值分割和区域生长)vc++代码(5)

时间:2025-07-03   来源:未知    
字号:

//获取图像信息 height=pImg->height; width=pImg->width; step=pImg->widthStep; channels=pImg->nChannels; data=(uchar *)pImg->imageData;

//printf("%d \n%d",width,step);

//创建一张与原图大小一样的全黑的图像,用于显示生长范围

int depth=pImg->depth; IplImage* pImg2=cvCreateImage(cvSize(width,height),depth,channels); pImg2->origin=0; cvZero(pImg2);

uchar * data2=(uchar *)pImg2->imageData;

cvNamedWindow( "win1", 1);//创建窗口

cvShowImage( "win1", pImg );//显示图像

EnQu(q,height/2);

EnQu(p,width/2);

while(q->front<q->rear) { i=q->qu[q->front]; j=p->qu[p->front]; if(abs(data[(i-1)*step+j]-data[i*step+j])<18&&(data2[(i-1)*step+j]==0)&&(i-1>0)&&(i-1<height)&&(j>0)&&(j<width))

{

data2[(i-1)*step+j]=255;

EnQu(q,i-1);

EnQu(p,j);

}

if(abs(data[(i+1)*step+j]-data[i*step+j])<18&&(data2[(i+1)*step+j]==0)&&(i+1>0)&&(i+1<height)&&(j>0)&&(j<width))

{data2[(i+1)*step+j]=255;

EnQu(q,i+1);

EnQu(p,j);

}

if(abs(data[i*step+j+1]-data[i*step+j])<18&&(data2[(i)*step+j+1]==0)&&(i>0)&&(i<height)&&(j+1>0)&&(j+1<width))

{

data2[i*step+j+1]=255;

图像分割(阈值分割和区域生长)vc++代码(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)