DSP.doc.docVIP

  • 1
  • 0
  • 约6.16千字
  • 约 7页
  • 2017-01-06 发布于贵州
  • 举报
DSP.docDSP.doc

K均值聚类 #include cdefBF561.h #include sys\exception.h #include ccblkfn.h /*********************************************/ #includestdio.h #includetime.h #includestdlib.h #includemath.h #define N 98*116 #define K 2 /********************************************/ #include ..\D_image_API\D_image_API.h #include common.h #include ..\sys_res.h #include ..\sml2\sml2.h #include dip_algorithm.h #define FILEADDRESS ..\\bbbb.bmp BMPIMAGE bmpimage; int main(void) { unsigned int state; *pSICA_SYSCR = 0xFFDF; D_image_init(); /***************图像数据读取程序***********/ if(!OpenBmpFile(FILEADDRESS,bmpimage)) { return FALSE; } if(!GetBmpHeader(bmpimage)) { return FALSE; } if(!Allocbuf(bmpimage)) { return FALSE; } if(!ReadBMPData(bmpimage)) { return FALSE; } unsigned char tempData, *pData; unsigned int index_data; /***************需要添加内容***************/ pData = bmpimage.imgbuf; int n,count=0; n=N; int c[K];int i;int sum0=0;int sum1=0,index[N]; c[0]=pData[0];c[1]=pData[100]; while(count200) { sum0=0; sum1=0; int j=0;int l=0;int d0;int d1; for(i=0;in;i++) { d0=abs(pData[i]-c[0]);d1=abs(pData[i]-c[1]); if(d0 = d1 ) { j++; sum0+=pData[i]; index[i]=1; } else { l++; sum1+=pData[i]; index[i]=0; } } c[0]=sum0/j;c[1]=sum1/l; count++; } for(i=0;iN;i++) { if(index[i]==1) pData[i]=0; else pData[i]=200; } bmpimage.imgbuf = pData; /*bmpimage.imgbuf为图像数据首地址,指针类型*/ /*图像宽度变量为bmpimage.infohead.biWidth,高度为bmpimage.infohead.biHeight*/ /*分割结果(不同区域标识对应的灰度值)要求仍然存储在bmpimage.imgbuf为首地址的区域*/ /*****************图像数据输出显示程序(板子小屏幕输出)***************/ // unsigned char tempData; unsigned char *pGrayData; unsigned char *pRGBData; unsigned int index_data1; pGrayData = bmpimage.imgbuf; //#if 0 /************************** 显示灰度图像 方法一 *************************************/ pRGBData = malloc(bmpimage.infohead.biWidth *bmpimage.infohead.biHeight *3); for(index_data1 =

文档评论(0)

1亿VIP精品文档

相关文档