• 大小: 4.05MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-12
  • 语言: 其他
  • 标签: opencv  目标识别  

资源简介

基于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个文件信息

评论

共有 条评论