您现在的位置是:课程教程文章
python中Harris角点检测
2023-12-14 20:39课程教程文章 人已围观
-
web安全之python编程 Python/渗透测试/爬虫
web安全之python编程 Python/渗透测试/爬虫【学习目标】 1.掌握Python的基础编程语法、函数、面向对象、程序测试; 2.掌握... -
1小时用python开发单词查询系统
1小时用python开发单词查询系统本课程带领大家自主开发一款python应用 需要大家具备python的基础知识 本课程可... -
渗透测试/linux/编程语言/信息安全/网络安
渗透测试/linux/编程语言/信息安全/网络安... -
Python测试开发/关键字驱动/测试框架设计
Python测试开发/关键字驱动/测试框架设计蜗牛学苑专注于IT与互联网领域的中高端人才培养。 开设课程覆盖Java开发、软...
基本思想
1、选择在图像上任意方向的固定窗口进行滑动,如果灰度变化较大,则认为该窗口内部存在角点。
2、步骤,读图并将其转换为灰度图。估计响应函数。根据响应值选择角度。画出原始图上的检测角点。
实例
frompylabimport* fromnumpyimport* fromscipy.ndimageimportfilters defcompute_harris_response(im,sigma=3): """ComputetheHarriscornerdetectorresponsefunction foreachpixelinagraylevelimage.""" #derivatives 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) #computecomponentsoftheHarrismatrix Wxx=filters.gaussian_filter(imx*imx,sigma) Wxy=filters.gaussian_filter(imx*imy,sigma) Wyy=filters.gaussian_filter(imy*imy,sigma) #determinantandtrace Wdet=Wxx*Wyy-Wxy**2 Wtr=Wxx+Wyy returnWdet/Wtr defget_harris_points(harrisim,min_dist=10,threshold=0.1): """ReturncornersfromaHarrisresponseimage min_dististheminimumnumberofpixelsseparating cornersandimageboundary.""" #findtopcornercandidatesaboveathreshold corner_threshold=harrisim.max()*threshold harrisim_t=(harrisim>corner_threshold)*1 #getcoordinatesofcandidates coords=array(harrisim_t.nonzero()).T #...andtheirvalues candidate_values=[harrisim[c[0],c[1]]forcincoords] #sortcandidates(reversetogetdescendingorder) index=argsort(candidate_values)[::-1] #storeallowedpointlocationsinarray allowed_locations=zeros(harrisim.shape) allowed_locations[min_dist:-min_dist,min_dist:-min_dist]=1 #selectthebestpointstakingmin_distanceintoaccount filtered_coords=[] foriinindex: ifallowed_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 returnfiltered_coords defplot_harris_points(image,filtered_coords): """Plotscornersfoundinimage.""" figure() gray() imshow(image) plot([p[1]forpinfiltered_coords], [p[0]forpinfiltered_coords],'*') axis('off') show()
fromPILimportImage fromnumpyimport* #这就是为啥上述要新建一个的原因,因为现在就可以import importHarris_Detector frompylabimport* fromscipy.ndimageimportfilters #filename im=array(Image.open(r"").convert('L')) harrisim=Harris_Detector.compute_harris_response(im) filtered_coords=Harris_Detector.get_harris_points(harrisim) Harris_Detector.plot_harris_points(im,filtered_coords)
以上就是python中Harris角点检测的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
课程教程:python中Harris角点检测上一篇:python字典键的两个特性
下一篇:没有了