棱角检测是计算机视觉中的一个重要环节,它帮助我们识别图像中突出的点。这是用于开发图像分析系统中最早期的特征提取技术之一。
工具/原料
python
方法/步骤
1
1、创建一个Python文件,并导入以下库文件: import cv2 import numpy as np
2
2、加载输入图像 input_file = sys.argv[1] img = cv2.imread(input_file) # 此处亦可以 input_file = 'box.jpg' cv2.imshow('Input image', img)
3
3、将图像转为灰度,并将其强制转换为浮点值。浮点值将用于棱角检测过程 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img_gray = np.float32(img_gray)
4
4、对灰度图像进行哈里斯角检测器(Harris corner detector) 通过http://docs.opencv.org/3.0-beta/doc/py_tutorials/ py_features_harris/py_features_harris.html查看更多哈里斯检测器的详细 介绍。 img_harris = cv2.cornerHarris(img_gray,7,5,0.04)
5
5、为了标记棱角,需要放大图像 img_harris = cv2.dilate(img_harris,None) img[img_harris>0.01*img_harris.max()] =[0,0,0] # 设置阈值标记棱角
6
6、显示输出图像 cv2.imshow('Harris Corners',img) cv2.waitKey()