zoukankan      html  css  js  c++  java
  • Hough变换

    看《计算机图像原理》,始终搞不明

    Technorati 标签: Hough变换

    白,Hough变换是怎么进行的。

    后来看了

    http://www1.qcxy.hb.cn/dxx/blog/u/zhangtao/archives/2008/520.html  和 http://slash-directx.blogspot.com/2009/04/huff-transformation.html

    之后,终于明白Hough变换方式。

    直线方程

    y = ax + k 

    在已经知道点xi,yi的情况下,需要求解的是a和k的值,在n个点下,可以列出n个

    yi=axi+k

    xi和yi是已知点。

    如果xi与yi之间有直线关系,那么就有m个点计算出来的a和k是一个值(直线上有m个离散点)。这个m就是Hough进行统计的值。

    由于水平线y=ax+k是没有办法表示出来,用极坐标可以表示平面上任意直线,上面方程就可以转换为

    p = xcos(theta) + ysin(theta)

    上面的描述就可以修改为下面的方式:xi,yi之间有直线关系,那么就有m个点计算出来的theta和p是一个值。

    由于theta值是在0~2pi之间,于是,又可以在角度0~2pi之间规划离散点,使得每隔1°就计算p的值,这样就可以通过每一度上p的个数,来得到具体直线的个数

    大致的伪代码如下:

    max-distance = sqrt( x-last*x-last + y-last*y-last )

    p-theta-face = new int[max-distance][360]

    for yi in y:

          for xi in x:

              for theta in xrange(0,360):

                   p = xi*cos(theta) + yi*sin(theta)

                   p-theta-face[p][theta] += 1

    算法复杂度为O3

  • 相关阅读:
    [XJOI]noip43 T2多人背包
    Codeforces Round #198 (Div. 2)E题解
    [XJOI]noip40 T2统计方案
    Codeforces Round #198 (Div. 2)C,D题解
    Codeforces Round #198 (Div. 2)A,B题解
    9.19[XJOI] NOIP训练37
    9.18[XJOI] NOIP训练36
    kmp算法详解
    [模板系列] AC自动姬
    luogu1967[NOIP2013D1T3] 货车运输 (最大生成树+LCA)
  • 原文地址:https://www.cnblogs.com/ubunoon/p/1821885.html
Copyright © 2011-2022 走看看