intmain(intarg"> intmain(intarg" />
欢迎来到天天文库
浏览记录
ID:38695876
大小:151.00 KB
页数:6页
时间:2019-06-17
《图像分割(阈值分割和区域生长)vc++代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验6图像分割1、阈值分割法实验代码及结果:#include"cv.h"#include"highgui.h"#include"stdio.h"#include"stdlib.h"#includeintmain(intargc,char**argv){IplImage*pImg=0;//声明IplImage指针intheight,width,step,channels;uchar*data;inti,j;//载入图像pImg=cvLoadImage("2.jpg",0);if(!pImg){printf("Imag
2、ewasnotloaded.");return-1;}//获取图像信息height=pImg->height;width=pImg->width;step=pImg->widthStep;channels=pImg->nChannels;data=(uchar*)pImg->imageData;printf("Processinga%d*%dwith%dchannels",height,width,channels);intMaxP=0;floatt,T,m=0,n=0;floatw0,w1,u0,u1,u;doubleq
3、2=0,temp=0;cvNamedWindow("win1",1);//创建窗口cvShowImage("win1",pImg);//显示图像//计算最大灰度值MaxPfor(i=0;iMaxP){MaxP=data[i*step+j];}}printf("最大灰度值:%d",MaxP);//计算最大方差时的阈值tfor(T=0;T4、0;for(i=0;itemp){t=T;temp=q2;}}printf("最佳阈值:%lf",t);for(i=0;i5、+)for(j=0;j6、e"cv.h"#include"highgui.h"#include"stdio.h"#include"stdlib.h"#include"math.h"#include"malloc.h"#defineMaxSize1000000structqueue{intqu[MaxSize];intfront;intrear;inttag;//front==rear时表示队列满或空的标志:tag==1表示满,tag==0表示空};structqueue*InitQu(){structqueue*q;q=(structqueue*)mall7、oc(sizeof(structqueue));//分配空间q->front=0;q->rear=0;q->tag=0;returnq;}intEnQu(structqueue*q,intx){if(q->rear==q->front&&q->tag==1)//表示队列已满return0;else{q->qu[q->rear]=x;q->rear=(q->rear+1);//尾指针向后走一步if(q->rear==q->front)//若有元素入队以后出现q->rear==q->front,则表示队列满q->tag=1;retur8、n1;}}intDeQu(structqueue*q){if(q->rear==q->front&&q->tag==0)//表示队空return0;else{q->qu[q->front]=0;//将队头元素的值赋值为0q->front=(q->f
4、0;for(i=0;itemp){t=T;temp=q2;}}printf("最佳阈值:%lf",t);for(i=0;i5、+)for(j=0;j6、e"cv.h"#include"highgui.h"#include"stdio.h"#include"stdlib.h"#include"math.h"#include"malloc.h"#defineMaxSize1000000structqueue{intqu[MaxSize];intfront;intrear;inttag;//front==rear时表示队列满或空的标志:tag==1表示满,tag==0表示空};structqueue*InitQu(){structqueue*q;q=(structqueue*)mall7、oc(sizeof(structqueue));//分配空间q->front=0;q->rear=0;q->tag=0;returnq;}intEnQu(structqueue*q,intx){if(q->rear==q->front&&q->tag==1)//表示队列已满return0;else{q->qu[q->rear]=x;q->rear=(q->rear+1);//尾指针向后走一步if(q->rear==q->front)//若有元素入队以后出现q->rear==q->front,则表示队列满q->tag=1;retur8、n1;}}intDeQu(structqueue*q){if(q->rear==q->front&&q->tag==0)//表示队空return0;else{q->qu[q->front]=0;//将队头元素的值赋值为0q->front=(q->f
5、+)for(j=0;j6、e"cv.h"#include"highgui.h"#include"stdio.h"#include"stdlib.h"#include"math.h"#include"malloc.h"#defineMaxSize1000000structqueue{intqu[MaxSize];intfront;intrear;inttag;//front==rear时表示队列满或空的标志:tag==1表示满,tag==0表示空};structqueue*InitQu(){structqueue*q;q=(structqueue*)mall7、oc(sizeof(structqueue));//分配空间q->front=0;q->rear=0;q->tag=0;returnq;}intEnQu(structqueue*q,intx){if(q->rear==q->front&&q->tag==1)//表示队列已满return0;else{q->qu[q->rear]=x;q->rear=(q->rear+1);//尾指针向后走一步if(q->rear==q->front)//若有元素入队以后出现q->rear==q->front,则表示队列满q->tag=1;retur8、n1;}}intDeQu(structqueue*q){if(q->rear==q->front&&q->tag==0)//表示队空return0;else{q->qu[q->front]=0;//将队头元素的值赋值为0q->front=(q->f
6、e"cv.h"#include"highgui.h"#include"stdio.h"#include"stdlib.h"#include"math.h"#include"malloc.h"#defineMaxSize1000000structqueue{intqu[MaxSize];intfront;intrear;inttag;//front==rear时表示队列满或空的标志:tag==1表示满,tag==0表示空};structqueue*InitQu(){structqueue*q;q=(structqueue*)mall
7、oc(sizeof(structqueue));//分配空间q->front=0;q->rear=0;q->tag=0;returnq;}intEnQu(structqueue*q,intx){if(q->rear==q->front&&q->tag==1)//表示队列已满return0;else{q->qu[q->rear]=x;q->rear=(q->rear+1);//尾指针向后走一步if(q->rear==q->front)//若有元素入队以后出现q->rear==q->front,则表示队列满q->tag=1;retur
8、n1;}}intDeQu(structqueue*q){if(q->rear==q->front&&q->tag==0)//表示队空return0;else{q->qu[q->front]=0;//将队头元素的值赋值为0q->front=(q->f
此文档下载收益归作者所有