harris 最常用作特征检测算法。

第一个文件harris.py

<pre name="code" class="python">from scipy.ndimage import filters
from numpy import *
from pylab import *
def compute_harris_response(im,sigma=3):
imx=zeros(im.shape)#计算导数
filters.gaussian_filter(im,(sigma,sigma),(0,1),imx)
imy=zeros(im.shape)
filters.gaussian_filter(im,(sigma,sigma),(1,0),imy)
Wxx=filters.gaussian_filter(imx*imx,sigma)
#计算harris矩阵分量
Wxy=filters.gaussian_filter(imx*imy,sigma)
Wyy=filters.gaussian_filter(imy*imy,sigma)
Wdet=Wxx*Wyy-Wxy**2 #计算矩阵的特征值和迹
Wtr=Wxx+Wyy
return Wdet/Wtr
def get_harris_points(harrisim,min_dist=10,threshold=0.1):
conner_threshold=harrisim.max()*threshold
harrisim_t=(harrisim>conner_threshold)*1 coords=array(harrisim_t.nonzero()).T
candidate_values=[harrisim[c[0],c[1]] for c in coords]
index=argsort(candidate_values)
allowed_locations=zeros(harrisim.shape)
allowed_locations[min_dist:-min_dist,min_dist:-min_dist]=1
filtered_coords=[]
for i in index:
if allowed_locations[coords[i,0],coords[i,1]]==1:
filtered_coords.append(coords[i])
allowed_locations[(coords[i,0]-min_dist):(coords[i,0]+min_dist),(coords[i,1]-min_dist):(coords[i,1]+min_dist)]=0#此处保证min_dist*min_dist仅仅有一个harris特征点
return filtered_coords
def plot_harris_points(image,filtered_coords):
figure()
gray()
imshow(image)
plot([p[1] for p in filtered_coords],[p[0]for p in filtered_coords],'+')
axis('off')
show()

第二个文件測试算法

from PIL import Image

from numpy import *
import harris
from pylab import *
from scipy.ndimage import filters
im=array(Image.open('33.jpg').convert('L'))
harrisim=harris.compute_harris_response(im)
filtered_coords=harris.get_harris_points(harrisim)
harris.plot_harris_points(im,filtered_coords)

版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. supervisor拉起daemon进程(falcon-agent)测试
  2. AngularJS学习笔记
  3. [HTTP那些事]网络请求API
  4. python:HTML + CSS 优先级 返回顶部
  5. 优化C/C++代码的小技巧
  6. web简单连接html文件测试
  7. struts2 标签的使用之二 s:iterator
  8. 批量安装XP补丁的命令
  9. 浅谈linux静态库、动态库。
  10. JavaScript脚本放在哪里用户体验好
  11. 应用负载均衡之LVS(五):lvs和nginx的wrr加权调度算法规律分析
  12. Day3-2 函数之递归
  13. matalb 产生信号源 AM调制解调 FM调制解调
  14. 3D打印GCODE文件学习(一)
  15. Linux中修改环境变量及生效方法(永久、临时)环境变量查看
  16. 【Ray Tracing The Next Week 超详解】 光线追踪2-7 任意长方体 &amp;&amp; 场景案例
  17. Selenium+Headless Firefox
  18. 高并发应对:淘宝CDN缓存服务器部署探秘
  19. ZooKeeper (一)概览
  20. android------锁屏(手机启动出现锁屏界面)

热门文章

  1. osgi实战学习之路:3. osgi分层概念及相互合作demo
  2. UNIX网络编程卷1 时间获取程序server TCP 协议相关性
  3. 利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口
  4. RedGate 工具SQLTEST 1.0.15.1
  5. 【剑指offer】q50:树节点最近的祖先
  6. String,StringBuffer和StringBuilder的异同
  7. 【牛刀小试2】password保
  8. 9种CSS3 blend模式制作的鼠标滑过图片标题特效
  9. SDL 简单入门学习
  10. iOS缓存类的设计