前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >角点精确检测

角点精确检测

作者头像
裴来凡
发布2022-05-28 16:50:27
发布2022-05-28 16:50:27
62600
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
import cv2
import numpy as np
from skimage.io import imread
from skimage.color import rgb2gray
from skimage.measure import ransac
from skimage.util import img_as_float
from matplotlib import pylab as pylab
from skimage.feature import corner_harris, corner_subpix, corner_peaks
from skimage.transform import warp, SimilarityTransform, AffineTransform,resize
from skimage.exposure import rescale_intensity
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
image_gray=rgb2gray(img)#将彩色图片转换为灰度图片
coordinates=corner_harris(image_gray, k =0.001)#Harris角点检测
coordinates[coordinates>0.03*coordinates.max()]=255#阈值
corner_coordinates=corner_peaks(coordinates)#计算Harris角点
coordinates_subpix=corner_subpix(image_gray,corner_coordinates,window_size=11)#计算角点的子像素位置
pylab.figure(figsize=(20,20))
pylab.subplot(211)
pylab.imshow(coordinates,cmap='inferno')
pylab.plot(coordinates_subpix[:,1],coordinates_subpix[:,0],'r.',markersize=5,label='subpixel')
pylab.legend(prop={'size':20})
pylab.axis('off')
pylab.subplot(212)
pylab.imshow(img,interpolation='nearest')
pylab.plot(corner_coordinates[:,1],corner_coordinates[:, 0],'bo',markersize=5)
pylab.plot(coordinates_subpix[:,1],coordinates_subpix[:, 0],'r+',markersize=10)
pylab.axis('off')
pylab.tight_layout()
pylab.show()
cv2.imshow('result',img)

算法:角点精确检测是以子像素的准确率对检测到的角点进行细化。

  • 首先计算Harris角点
  • 然后计算角点的子像素位置
  • 最后,使用统计检验来决定是否接受或拒绝先前计算的角点

注意:设置搜索角点的邻域(窗口)的大小值。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档