资源简介
顺利运行,简单明了,使用基本全局阈值法,在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
- 上一篇:超经典计算机网络考试题
- 下一篇:AD9852完整程序 最完整的
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论