资源简介
基于OpenCV的红点识别,对做图像目标识别跟踪领域方面工作的有启发.
代码片段和文件信息
#include “math.h“
int getThreshold(int Hangint Lie unsigned char *buffer)
{
int ij;
//二维OTSU法求取阈值nThreshold
double dHistogram[256][256]; //建立二维灰度直方图
double dTrMatrix = 0.0; //离散矩阵的迹
int N = Lie*Hang; //总像素数
for(i=0; i<256; i++)
{
for(j=0; j<256; j++)
dHistogram[i][j] = 0.0; //初始化变量
}
for(i=0; i {
for(int j=0; j {
unsigned char nData1 = (unsigned char)buffer[i*Hang+j]; //当前的灰度值
unsigned char nData2 = 0;
int nData3 = 0; //注意9个值相加可能超过一个字节
for(int m=i-1; m<=i+1; m++)
{
for(int n=j-1; n<=j+1; n++)
{
if((m>=0)&&(m=0)&&(n nData3 += (unsigned char)buffer[m*Hang+n]; //当前的灰度值
}
}
nData2 = (unsigned char)(nData3/9); //对于越界的索引值进行补零邻域均值
dHistogram[nData1][nData2]++;
}
}
for(i=0; i<256; i++)
for(int j=0; j<256; j++)
dHistogram[i][j] /= N; //得到归一化的概率分布
double Pai = 0.0; //目标区均值矢量i分量
double Paj = 0.0; //目标区均值矢量j分量
double Pbi = 0.0; //背景区均值矢量i分量
double Pbj = 0.0; //背景区均值矢量j分量
double Pti = 0.0; //全局均值矢量i分量
double Ptj = 0.0; //全局均值矢量j分量
double W0 = 0.0; //目标区的联合概率密度
double W1 = 0.0; //背景区的联合概率密度
double dData1 = 0.0;
double dData2 = 0.0;
double dData3 = 0.0;
double dData4 = 0.0; //中间变量
int nThreshold_s = 0;
int nThreshold_t = 0;
double temp = 0.0; //寻求最大值
//求Pti全局均值矢量i,Ptj全局均值矢量j
for(i=0; i<256; i++)
{
for(int j=0; j<256; j++)
{
Pti += i*dHistogram[i][j];
Ptj += j*dHistogram[i][j];
}
}
for(i=0; i<256; i++)
{
for(int j=0; j<256; j++)
{
W0 += dHistogram[i][j];
dData1 += i*dHistogram[i][j];
dData2 += j*dHistogram[i][j];
W1 = 1-W0;
dData3 = Pti-dData1;
dData4 = Ptj-dData2;
/* W1=dData3=dData4=0.0; //对内循环的数据进行初始化
for(int s=i+1; s<256; s++)
{
for(int t=j+1; t<256; t++)
{
W1 += dHistogram[s][t];
dData3 += s*dHistogram[s][t]; //方法2
dData4 += t*dHistogram[s][t]; //也可以增加循环进行计算
}
}*/
Pai = dData1/W0;
Paj = dData2/W0;
Pbi = dData3/W1;
Pbj = dData4/W1; // 得到两个均值向量,用4个分量表示
dTrMatrix = ((W0*Pti-dData1)*(W0*Pti-dData1)+(W0*Ptj-dData1)*(W0*Ptj-dData2))/(W0*W1);
if(dTrMatrix > temp)
{
temp = dTrMatrix;
nThreshold_s = i;
nThreshold_t = j;
}
}
}
return nThreshold_t; //返回结果中的灰度值
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4946 2012-09-22 19:21 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\getThreshold.obj
文件 0 2012-09-22 19:21 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\getThreshold.sbr
文件 34801 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\main.obj
文件 0 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\main.sbr
文件 2376704 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\RedDetected.bsc
文件 266299 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\RedDetected.exe
文件 402652 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\RedDetected.ilk
文件 7177420 2012-09-23 09:58 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\RedDetected.pch
文件 599040 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\RedDetected.pdb
文件 222208 2012-11-25 23:22 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\vc60.idb
文件 151552 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug\vc60.pdb
文件 2673 2012-09-22 19:19 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\getThreshold.cpp
文件 42 2012-09-22 12:44 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\header.h
文件 1440054 2012-09-19 19:53 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\IMG_20120919_195323_0.bmp
文件 403330 2012-09-19 21:22 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\IMG_20120919_212258_0.jpg
文件 355195 2012-09-19 21:23 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\IMG_20120919_212315_0.jpg
文件 6285 2012-10-10 19:43 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\main.cpp
文件 4420 2012-09-23 12:05 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\RedDetected.dsp
文件 545 2012-09-21 10:01 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\RedDetected.dsw
文件 66560 2012-11-26 00:02 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\RedDetected.ncb
文件 48640 2012-11-26 00:02 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\RedDetected.opt
文件 1671 2012-10-10 20:00 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\RedDetected.plg
文件 16384 2012-10-28 23:24 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\~VCEEC.tmp
文件 0 2012-10-28 23:24 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\~VCEED.tmp
目录 0 2012-11-27 18:50 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected\Debug
目录 0 2013-05-09 12:59 基于OpenCV的红点识别\基于opencv的红点识别\FallowRedDetected
目录 0 2013-05-09 12:59 基于OpenCV的红点识别\基于opencv的红点识别
目录 0 2013-05-09 12:59 基于OpenCV的红点识别
----------- --------- ---------- ----- ----
13581421 28
............此处省略1个文件信息
相关资源
- slam 开源代码ptam and ptamm
- opencv3.4.3 mingw32编译
- 圆形公章的定位检测
-
haarcascade_mcs等所有识别xm
l文件 - 利用OpenCV在VS2015平台下对进行人脸识
- hand-gesture-recognition-opencv-master.zip
- imageStitching实现图像拼接
- 圆点摄像头激光测距源代码---本人亲
- opencv图像分类样本
- 32位 opencv 3.4.1 lib和dll文件
- 基于OpenCV的红绿灯识别
- opencv手写英文字符识别
- OpenCV测试工程
- 基于Opencv3.0生成的dll
- arm版opencv-2.4.9
- opencv3 图片外接矩形框
- OPENCV 合成两张焦点不同,图像相同的
- OPENCV 找出图片焦点
- 《视觉系统设计》
- opencv1.0.0版本
- 相机标定完整工程
- VIBE算法原理及openCV源程序
- opencv+zbar实现摄像头二维码识别
- opencv学习---运动目标前景检测
- 新手学习opencv--基于Hog的视频行人检测
- 通过Kinect v2.0+ VS2012+openCV2.4.9将彩色帧
- Mastering OpenCV中文版
- vs2008下实现二维码扫描,图片扫描,
- 基于opencv2.4.9的车牌定位、倾斜校正、
- OpenCV张正友相机标定程序,附实验数
评论
共有 条评论