博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三维精密测量(一) 一种求圆标志中心亚像素级边缘标定算法
阅读量:5833 次
发布时间:2019-06-18

本文共 2113 字,大约阅读时间需要 7 分钟。

一、边缘细定位边缘

1 参数拟合法的基本原理

        CCD是光积分器件,它以固定大小的面积在固定的时间间隔内对投影其感光面上的光强进行积分,输出的结果就是图像的灰度值。由于CCD的积分时间和面积是相对固定的,所以它的输出灰度值只与感光面上光强分布有关。对于某一像素的灰度值输出可以表示为

${\rm{f}}\left( {

{\rm{i}},{\rm{j}}} \right) = \mathop \smallint \limits_{j - 0.5}^{j + 0.5} \mathop \smallint \limits_{j - 0.5}^{j + 0.5} g\left( {x,y} \right)dxdy$   (1)

        式1中,g(x,y)是连续图像的光强分布。从式(1)可以看出,f(i,j)是像素感光面上各部分光强综合作用的结果,这就是方形孔径采样定理,采样结果是以灰度为数值的离散矩阵。

        由于光学元器件的卷积作用以及光学衍射作用,在物空间剧变的灰度值经光学成像成为渐变的形式。边缘在图像中表征为一种灰度分布,图像边缘灰度值变化应当是高斯分布,灰度差最大的点为真实边缘点,即:高斯曲线的顶点位置为真实边缘点位置。高斯曲线的表达式为

${\rm{y}} = \frac{1}{

{\sqrt {2\pi } \sigma }}{e^{\left( {\frac{
{ - {
{\left( {x - \mu } \right)}^2}}}{
{2{\sigma ^2}}}} \right)}}$    (2)

        式中,μ为均值,σ为标准差。

        为方便计算,对式(2)两边取对数得

${\rm{lny}} =  - \frac{

{
{
{\left( {x - \mu } \right)}^2}}}{
{2{\sigma ^2}}} + ln\frac{1}{
{\sqrt {2\pi } \sigma }}$    (3)

        令y* = lny,则式(3)转化为

y*=Ax2+Bx+C   (3.1)

        根据方形孔径采样定理,像素灰度差值为

${

{\rm{y}}^{\rm{*}}}\left( {\rm{n}} \right) = \mathop \smallint \limits_{n - 0.5}^{n + 0.5} \left( {
{\rm{A}}{
{\rm{x}}^2} + {\rm{Bx}} + {\rm{C}}} \right)dx$   (4)

        令灰度差值最大的点的序号为0,灰度差值表示为f0,左右相邻的四个点的序号分别表示为-2,-1,1,和2,相应的值表示为f-2,f-1,f1和f2,根据式4可以求出5个像素输出的灰度差分别为

${

{\rm{f}}_{ - 2}} = \mathop \smallint \limits_{ - 2.5}^{ - 1.5} \left( {
{\rm{A}}{
{\rm{x}}^2} + {\rm{Bx}} + {\rm{C}}} \right)dx = \frac{
{49}}{
{12}}A - 2B + C$    (5)

        同理可得

${

{\rm{f}}_{ - 1}} = \frac{
{13}}{
{12}}A - B + C$   (6)

${

{\rm{f}}_0} = \frac{1}{
{12}}A + C$   (7)

${

{\rm{f}}_1} = \frac{
{13}}{
{12}}A + B + C$    (8)

${

{\rm{f}}_2} = \frac{
{49}}{
{12}} + 2B + C$    (9)

        根据式(5)~(9),联立方程组,用最小二乘法求得A、B、C,再将A、B、C的值代入抛物线顶点坐标值x=-B/2A,得到抛物线的顶点坐标为

${\rm{x}} = \frac{

{ - 0.2{f_{ - 2}} - 0.1{f_{ - 2}} + 0.1{f_1} - 0.2{f_2}}}{
{2\left( {0.1429{f_{ - 2}} - 0.074{f_{ - 2}} - 0.1429{f_0} - 0.0714{f_1} + 0.1429{f_2}} \right)}}$    (10)

        注意到由式(3)到式(3.1),y经过了取对数的操作,因此,像素灰度插值也应取对数,所以亚像素级边缘提取公式为

${

{\rm{x}}_g} = \frac{
{ - 0.2ln{f_{ - 2}} - 0.1ln{f_{ - 2}} + 0.1ln{f_1} - 0.2ln{f_2}}}{
{2\left( {0.1429ln{f_{ - 2}} - 0.074ln{f_{ - 2}} - 0.1429ln{f_0} - 0.0714ln{f_1} + 0.1429ln{f_2}} \right)}}$    (11)

        在像素级边缘定位后,取得该点梯度方向的邻近点的灰度值做差分处理,代入式(11)即可求得亚像素级精度的边缘点。

 

转载于:https://www.cnblogs.com/fujj/p/9678658.html

你可能感兴趣的文章
面试总结之Database
查看>>
初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】
查看>>
Uva 10557 - XYZZY(DFS+BFS)
查看>>
团队Git使用教程
查看>>
Zookeeper与Kafka基础概念和原理
查看>>
JQ多行文本溢出省略号插件
查看>>
Apache性能优化总结
查看>>
javascript事件之: 事件冒泡, 事件捕获 ,阻止默认事件
查看>>
RookeyFrame 迁移 线下Model 新增属性 迁移 到数据库
查看>>
[03]CSS 选择器(下)
查看>>
Sql Server多种分页性能的比较
查看>>
nginx对特定参数限流
查看>>
微信资源包混淆
查看>>
mysql 索引
查看>>
Delphi线程同步
查看>>
pyspider 简单应用之快速问医生药品抓取(一)
查看>>
第K大数
查看>>
c#代码技巧
查看>>
LeetCode 453 Minimum Moves to Equal Array Elements
查看>>
1134 最长上升子序列 (序列型 DP)
查看>>