• 大小: 717KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: 其他
  • 标签: opencv  

资源简介

顺利运行,简单明了,使用基本全局阈值法,在opencv上开发。

资源截图

代码片段和文件信息

// 005.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “cv.h“
#include “cxcore.h“
#include “highgui.h“
//#include “math.h“ 

int BasicGlobalThreshold(int *pgint startint end)
  {                                           //  基本全局阈值法
      int  itt1t2k1k2;
      double uu1u2;    
      t=0;     
      u=0;
      for (i=start;i     {
         t+=pg[i];        
         u+=i*pg[i];
     }
     k2=(int) (u/t);                          //  计算此范围灰度的平均值    
     do 
     {
         k1=k2;
         t1=0;    
         u1=0;
         for (i=start;i<=k1;i++) 
         {             //  计算低灰度组的累加和
             t1+=pg[i];    
             u1+=i*pg[i];
         }
         t2=t-t1;
         u2=u-u1;
         if (t1) 
             u1=u1/t1;                     //  计算低灰度组的平均值
         else 
             u1=0;
         if (t2) 
             u2=u2/t2;                     //  计算高灰度组的平均值
         else 
             u2=0;
         k2=(int) ((u1+u2)/2);                 //  得到新的阈值估计值
     }
     while(k1!=k2);                           //  数据未稳定,继续
     //cout<<“The Threshold of this Image in BasicGlobalThreshold is:“<     return(k1);                              //  返回阈值
 }


int main(int argc char* argv[]) 
{
IplImage *imgGray=NULL;// 声明IplImage 变量,用于图像格式转换
IplImage *img=cvLoadImage(“车道线识别.jpg“);
imgGray=cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
cvCvtColor(imgimgGrayCV_BGR2GRAY);

IplImage* imgBasicGlobalThreshold=cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
    
    cvCopyImage(imgGrayimgBasicGlobalThreshold);
    
int pg[256]ith;

    for (i=0;i<256;i++)
    pg[i]=0;

    for (i=0;iimageSize;i++)// 直方图统计

    pg[(BYTE)imgBasicGlobalThreshold->imageData[i]]++;

    th = BasicGlobalThreshold(pg0256);// 确定阈值

    printf(“阈值为%d\n“th);//输出显示阀值

    cvThreshold(imgBasicGlobalThresholdimgBasicGlobalThresholdth255CV_THRESH_BINARY);// 二值化

    cvNamedWindow(“BasicGlobalThreshold“1);
    cvShowImage(“BasicGlobalThreshold“imgBasicGlobalThreshold);//显示图像
cvWaitKey(0);

    return 0; 
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        769  2012-09-04 13:01  005\StdAfx.h

     文件        290  2012-09-04 13:01  005\StdAfx.cpp

     文件       1190  2012-09-04 13:01  005\ReadMe.txt

     文件        514  2012-09-04 13:01  005\005.dsw

     文件      41984  2012-09-06 17:23  005\005.ncb

     文件     140288  2012-09-04 21:22  005\Debug\vc60.idb

     文件     400556  2012-09-04 20:42  005\Debug\005.pch

     文件     208896  2012-09-04 21:21  005\Debug\vc60.pdb

     文件     188463  2012-09-04 21:22  005\Debug\005.exe

     文件     566272  2012-09-04 21:21  005\Debug\005.pdb

     文件     206608  2012-09-04 21:22  005\Debug\005.ilk

     文件       3998  2012-09-04 20:42  005\Debug\StdAfx.sbr

     文件       2061  2012-09-04 20:42  005\Debug\StdAfx.obj

     文件          0  2012-09-04 21:21  005\Debug\005.sbr

     文件    2024448  2012-09-04 21:21  005\Debug\005.bsc

     文件      25910  2012-09-04 21:22  005\Debug\005.obj

     文件        812  2012-09-04 21:22  005\005.plg

     文件       4386  2012-09-04 13:04  005\005.dsp

     文件      32715  2012-09-03 10:42  005\车道线识别.jpg

     文件       2310  2012-09-04 20:55  005\005.cpp

     文件      48640  2012-09-06 17:23  005\005.opt

     目录          0  2012-09-04 13:01  005\Debug

     目录          0  2012-09-04 13:01  005

----------- ---------  ---------- -----  ----

              3901110                    23


评论

共有 条评论