码迷,mamicode.com
首页 > 其他好文 > 详细

day6 角点检测

时间:2017-11-14 17:48:20      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:image   一个   col   atp   gray   http   领域   根据   结果   

1.Harris角点检测

技术分享

 

# coding=utf-8
import cv2
import numpy as np

filename = pic5.png

#1.读入一个灰度图像
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow(gray,gray)

#2.执行角点检测函数
gray = np.float32(gray)
dst = cv2.cornerHarris(gray,2,3,0.04)   #函数 cv2.cornerHarris() 可以用来进行角点检测
            #数据类型为 float32 的输入图像
                            # 2:角点检测中要考虑的领域大小
                               #3: Sobel 求导中使用的窗口大小
                                 #Harris 角点检测方程中的自由参数,取值参数为 [0,04,0.06]

dst = cv2.dilate(dst,None)   #扩大标记角
img[dst>0.01*dst.max()] = [0,0,255]  #阈值为一个最佳值,它可能会根据图像而变化。


cv2.imshow(dst,img)


cv2.waitKey(0)
cv2.destroyAllWindows()

 

 技术分享

 

2.Shi-Tomasi角点检测&适合跟踪的图像特征

    技术分享

# coding=utf-8

import cv2
import numpy as np
from matplotlib import pyplot as plt

#1.读入图像,灰度
filename = pic5.png
filename2 = woman.JPEG

img = cv2.imread(filename2)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#2.执行角点函数 cv2.goodFeaturesToTrack
corners = cv2.goodFeaturesToTrack(gray,50,0.01,10)
                                    #50个最佳点
                                        #0.01 角点的质量水平,0到 1 之间
    # 返回的结果是 [[ 311., 250.]] 两层括号的数组。

corners = np.int0(corners)


#3.在img标记角点
for i in corners:
    x,y = i.ravel()
    cv2.circle(img,(x,y),3,255,-1)


plt.imshow(img)
plt.show()

    技术分享

 

day6 角点检测

标签:image   一个   col   atp   gray   http   领域   根据   结果   

原文地址:http://www.cnblogs.com/venicid/p/7833660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!