影像内定向
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

影像内定向 ( 框标点的定位 ) PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on
  • Presentation posted in: General

影像内定向 ( 框标点的定位 ). 组长: 郭晓虎 指导教员:郭海涛教员 组员: 张莎莎 苏博 李芳林 王儒杰. 定位算子 复习. [ 一 ] 、 定位算子、特征定位的意义. 指运用某种算法来精确确定图像中特征的具体位置的算子. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. Wong-Ttrinder 圆点 定位算子.

Download Presentation

影像内定向 ( 框标点的定位 )

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6053553

影像内定向(框标点的定位)

组长: 郭晓虎

指导教员:郭海涛教员

组员: 张莎莎 苏博

李芳林 王儒杰


6053553

定位算子复习

[一]、定位算子、特征定位的意义

指运用某种算法来精确确定图像中特征的具体位置的算子.


6053553

1

1

1

1

1

1

1

1

1

1

1

1

1

Wong-Ttrinder圆点定位算子

[二]、 Wong-Ttrinder圆点定位算子

  • Wong和Wei-Hsin利用二值图像重心对圆点进行定位。

  • 首先利用阈值T=(最小灰度值+平均灰度值)/2将窗口中的影像二值化为gij(i=0,1,…,n-1;j=0,1,…,m -1)

  • 然后计算目标重心坐标(x,y)与圆度r


6053553

1

1

1

1

1

1

1

1

1

1

1

1

1

Wong-Ttrinder圆点定位算子

[二]、 Wong-Ttrinder圆点定位算子

x=m10/m00

m10 =5+18+35+24+9=91

y=m01/m00

m00 =13

m01 =2+9+20+15+6=52

x=91/13=7.0

y=52/13=4.0


6053553

1

1

1

1

1

1

1

1

1

1

1

1

1

Wong-Ttrinder圆点定位算子

[二]、 Wong-Ttrinder圆点定位算子

r=Mx/My


6053553

1

1

1

1

1

1

1

1

1

1

1

1

1

Wong-Ttrinder圆点定位算子

[二]、 Wong-Ttrinder圆点定位算子

M20 =4+3+0+3+4=14

M02 =4+3+0+3+4=14

M11 =1-1-1+1=0

Mx=14+0=14

My=14-0=14

r=1.0

r=Mx/My


6053553

Wong-Ttrinder圆点定位算子

[二]、 Wong-Ttrinder圆点定位算子

Trinder发现,该算子受二值化影响,误差可达0.5像素,因此他利用原始灰度Wij为权


Wong ttrinder

1

1

1

1

1

1

1

1

Wong-Ttrinder圆点定位算子程序实现


6053553

圆点定位算子编程实现

int i,j;

LPBYTE lpSrc;

float x,y;

float Mx,My;

long m10=0,m01=0,m00=0;

long huidu=0,pingjun=0;

int yuzhi=0;

float M20,M02,M11,yuandu;

M20=0.0;M02=0.0;M11=0.0;

//定义变量及其初始化

定义变量及其初始化


6053553

圆点定位算子编程实现

  • BYTE *temp=newBYTE[(Width+L_Width)*Height];

  • memcpy(temp,image,(Width+L_Width)*Height);

开辟BYTE型内存空间

空间大小为(Width+L_Width)*Height

把原图像复制到该内存空间中


6053553

圆点定位算子编程实现

首先利用阈值T=(最小灰度值+平均灰度值)/2将窗口中的影像二值化为gij(i=0,1,…,n-1;j=0,1,…,m -1)

for(j=0;j<Height;j++)

{

for(i=0;i<(Width+L_Width);i++)

{

lpSrc=(LPBYTE)image+(Width+L_Width)*(Height-1-j)+i;

if( huidu<(*(lpSrc)))

huidu=*(lpSrc);//最大灰度

pingjun+=(*lpSrc);//灰度和

}//取得最大灰度和灰度和

}

pingjun=pingjun/((Width+L_Width)*Height);//平均灰度

yuzhi=(pingjun+huidu)/2;//取最大灰度和平均灰度的平均为阈值

获取阈值


6053553

圆点定位算子编程实现

二值化

for(j=0;j<Height;j++)

{

for(i=0;i<(Width+L_Width);i++)

{

lpSrc=(LPBYTE)image+(Width+L_Width)*(Height-1-j)+i;

if(*lpSrc>yuzhi)//计算该灰度是否大于阈值

*lpSrc=1;

else

*lpSrc=0;

}

}//图像0,1二值化


6053553

圆点定位算子编程实现

计算m10,m00,m01

for(j=0;j<Height;j++)

for(i=0;i<(Width+L_Width);i++)

{

lpSrc=(LPBYTE)image+(Width+L_Width)*(Height-1-j)+i;

m10+=(*lpSrc)*i;

m00+=(*lpSrc);

m01+=(*lpSrc)*j;//计算m10,m00,m01;

}


6053553

圆点定位算子编程实现

x=m10/(m00*1.0);

y=m01/(m00*1.0);//计算定位点的x,y坐标

x=m10/m00

计算x,y坐标

y=m01/m00


6053553

圆点定位算子编程实现

计算M20,M02,M11

for(j=0;j<Height;j++)

{

for(i=0;i<(Width+L_Width);i++)

{

lpSrc=(LPBYTE)image+(Width+L_Width)*(Height-1-j)+i;

M20+=(i-x)*(i-x)*(*lpSrc);

M02+=(j-y)*(j-y)*(*lpSrc);

M11+=(i-x)*(j-y)*(*lpSrc);//计算M20,M02,M11

}

}


6053553

圆点定位算子编程实现

Mx=(M20+M02)/2+sqrt(((M20-M02)/2)*((M20M02)/2)+M11*M11);

My=(M20+M02)/2-sqrt(((M20-M02)/2)*((M20-M02)/2)+M11*M11);

yuandu=Mx/My; //计算Mx,My,圆度r

圆度r=Mx/My

计算Mx,My,圆度


6053553

圆点定位算子编程实现

//完成在中间画十字的动作

CPoint m_pt1;//定义点

m_pt1=0;//初始化点

m_pt1.x=x;

m_pt1.y=y;

m_pt1.x=(int)(m_pt1.x+0.5);

m_pt1.y=(int)(m_pt1.y+0.5);//四舍五入

标记


6053553

圆点定位算子编程实现

//要弹出对话框显示x,y,及圆度(yuandu)

CString ss1,ss2,ss3,ss;

ss1.Format("%f",x);

ss2.Format("%f",y);//因为函数MessageBox()要求输出的 类型必须是字符型,调用Format()函数进行转换

ss3.Format("%f",yuandu);

ss="x="+ss1;

ss+="y=";

ss+=ss2;

ss+="yuandu=";

ss+=ss3;

MessageBox(ss);//弹出消息

显示


6053553

圆点定位算子编程实现

memcpy(image,temp,(Width+L_Width)*Height);

//还原原图像

Invalidate();//使窗口无效,图像刷新,新的标记就显示到上面了


6053553

Thank You!


  • Login