1数字图像处理实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1数字图像处理实验报告

数字图像处理 实验报告 学号 姓名 日期 实验一 灰度图像的二值化处理 一、实验目的 图像二值化二值化图像的显示与打印十分方便,存储与传输也非常容易是将灰度图像转化为只有黑白两类像素的图像 五、源程序(附上注释) int DetectThreshold(IplImage*img, int nMaxIter, int iDiffRec)? //阀值分割 { ???? //图像信息 ??? int height = img-height; ??? int width = img-width; ???? int step = img-widthStep/sizeof(uchar); ???? uchar *data = (uchar*)img-imageData; ??? iDiffRec = 0; ?? int F[256]={ 0 }; //直方图数组??? int iTotalGray=0;//灰度值和??? int iTotalPixel = 0;//像素数和?? ??uchar iThrehold,iNewThrehold;//阀值、新阀值 ??uchar iMaxGrayValue=0,iMinGrayValue=255;//原图像中的最大灰度值和最小灰度值 uchar iMeanGrayValue1,iMeanGrayValue2; //获取(i,j)的值,存于直方图数组F ??for(int i=0;iwidth;i++) { ? for(int j= 0;jheight;j++ iThrehold = 0;// iNewThrehold = (iMinGrayValue+iMaxGrayValue)/2;//初始阀值 iDiffRec = iMaxGrayValue - iMinGrayValue; for(int a=0;(abs(iThrehold-iNewThrehold)0.5)anMaxIter;a++)//迭代中止条件 { ? iThrehold = iNewThrehold; //小于当前阀值部分的平均灰度值 for(int i=iMinGrayValue;iiThrehold;i++) { ? iTotalGray += F[i]*i;//F[]存储图像信息 ? iTotalPixel += F[i]; } iMeanGrayValue1 = (uchar)(iTotalGray/iTotalPixel); //大于当前阀值部分的平均灰度值 iTotalPixel = 0; iTotalGray = 0 for(int j=iThrehold+1;jiMaxGrayValue;j++) { iTotalGray += F[j]*j;//F[]存储图像信息 ? iTotalPixel += F[j];??? } iMeanGrayValue2 = (uchar)(iTotalGray/iTotalPixel); iNewThrehold = (iMeanGrayValue2+iMeanGrayValue1)/2;??????? //新阀值 iDiffRec = abs(iMeanGrayValue2 - iMeanGrayValue1); } //coutThe Threshold of this Image in imgIteration is:iThreholdendl; ? return iThrehold; } int otsu (unsigned char *image, int rows, int cols, int x0, int y0, int dx, int dy, int vvv) { unsigned char *np; // 图像指针 int thresholdValue=1; // 阈值 int ihist[256]; // 图像直方图,256个点 int i, j, k; // various counter int n, n1, n2, gmin, gmax; double m1, m2, sum, csum, fmax, sb;? // 对直方图置零 memset(ihist, 0, sizeof(ihist)); gmin=255; gmax=0; // 生成直方图 for (i = y0 + 1; i y0 + dy - 1; i++) { np = (unsigned char*)image[i*cols+x0+1]; for (j = x0 + 1; j x0 + dx - 1; j++) {

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档