1 / 20

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

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

cora-briggs
Télécharger la présentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 影像内定向(框标点的定位) 组长: 郭晓虎 指导教员:郭海涛教员 组员: 张莎莎 苏博 李芳林 王儒杰

  2. 定位算子复习 [一]、定位算子、特征定位的意义 指运用某种算法来精确确定图像中特征的具体位置的算子.

  3. 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

  4. 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

  5. 1 1 1 1 1 1 1 1 1 1 1 1 1 Wong-Ttrinder圆点定位算子 [二]、 Wong-Ttrinder圆点定位算子 r=Mx/My

  6. 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

  7. Wong-Ttrinder圆点定位算子 [二]、 Wong-Ttrinder圆点定位算子 Trinder发现,该算子受二值化影响,误差可达0.5像素,因此他利用原始灰度Wij为权

  8. 1 1 1 1 1 1 1 1 Wong-Ttrinder圆点定位算子程序实现 实 现 结 果

  9. 圆点定位算子编程实现 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; //定义变量及其初始化 定义变量及其初始化

  10. 圆点定位算子编程实现 • BYTE *temp=newBYTE[(Width+L_Width)*Height]; • memcpy(temp,image,(Width+L_Width)*Height); 开辟BYTE型内存空间 空间大小为(Width+L_Width)*Height 把原图像复制到该内存空间中

  11. 圆点定位算子编程实现 首先利用阈值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;//取最大灰度和平均灰度的平均为阈值 获取阈值

  12. 圆点定位算子编程实现 二值化 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二值化

  13. 圆点定位算子编程实现 计算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; }

  14. 圆点定位算子编程实现 x=m10/(m00*1.0); y=m01/(m00*1.0);//计算定位点的x,y坐标 x=m10/m00 计算x,y坐标 y=m01/m00

  15. 圆点定位算子编程实现 计算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 } }

  16. 圆点定位算子编程实现 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,圆度

  17. 圆点定位算子编程实现 //完成在中间画十字的动作 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);//四舍五入 标记

  18. 圆点定位算子编程实现 //要弹出对话框显示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);//弹出消息 显示

  19. 圆点定位算子编程实现 memcpy(image,temp,(Width+L_Width)*Height); //还原原图像 Invalidate(); //使窗口无效,图像刷新,新的标记就显示到上面了

  20. Thank You!

More Related