【Pycharm】Harris 角点检测算法实现过程!

Harris角点检测算法

一、算法原理

哈里斯角点是在任意方向上移动(u,v),都会有很明显的变化。如下图一个局部很小的区域,如果是在图片区域中移动灰度值没有变化,那么窗口内不存在角点。如果在某一个方向上移动,一个发生很大变化而另一侧没有变化,那么说明这个区域是位于该对象的边缘区域。
【Pycharm】Harris 角点检测算法实现过程!_第1张图片

二、代码

# -*- coding: utf-8 -*-
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris

"""
Example of detecting Harris corner points (Figure 2-1 in the book).
"""
import PCV
# 读入图像
im = array(Image.open('1.jpg').convert('L'))

# 检测harris角点
harrisim = harris.compute_harris_response(im)

# Harris响应函数
harrisim1 = 255 - harrisim

figure()
gray()

#画出Harris响应图
subplot(141)
imshow(harrisim1)
print(harrisim1.shape)
axis('off')
axis('equal')

threshold = [0.01, 0.05, 0.1]
for i, thres in enumerate(threshold):
    filtered_coords = harris.get_harris_points(harrisim, 6, thres)
    subplot(1, 4, i+2)
    imshow(im)
    print(im.shape)
    plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')
    axis('off')

#原书采用的PCV中PCV harris模块
#harris.plot_harris_points(im, filtered_coords)

# plot only 200 strongest
# harris.plot_harris_points(im, filtered_coords[:200])

show()

三、运行结果与分析

原图:
【Pycharm】Harris 角点检测算法实现过程!_第2张图片
运行结果:
【Pycharm】Harris 角点检测算法实现过程!_第3张图片
pycharm中运行过程:
【Pycharm】Harris 角点检测算法实现过程!_第4张图片
可能会遇到的问题就是 import PCV 导入的问题;
解决办法:从githup上下载PCV的包,然后cmd下安装即可:
下载PCV库文件数据地址:https://github.com/jesolem/PCV
打开cmd,执行如下指令:
(1)执行cd命令,转到你所解压到的PCV的文件夹中。
(2)输入python setup.py install
(3)重启命令行,输入import PCV,如果没有报错,则说明PCV库安装成功。
有问题的伙伴可以评论或者私信~ 记得点赞收藏~

你可能感兴趣的:(python,pycharm,算法,python)