环境
pip install opencv-python==3.4.2.16 pip install opencv-contrib-python==3.4.2.16
理论
克里斯·哈里斯(Chris Harris)和迈克·史蒂芬斯(Mike Stephens)在1988年的论文《组合式拐角和边缘检测器》中做了一次尝试找到这些拐角的尝试,所以现在将其称为哈里斯拐角检测器。
函数:cv2.cornerHarris(),cv2.cornerSubPix()
示例代码
import cv2 import numpy as np filename = 'molecule.png' img = cv2.imread(filename) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) gray = np.float32(gray) dst = cv2.cornerHarris(gray,2,3,0.04) #result is dilated for marking the corners, not important dst = cv2.dilate(dst,None) # Threshold for an optimal value, it may vary depending on the image. img[dst>0.01*dst.max()]=[0,0,255] cv2.imshow('dst',img) if cv2.waitKey(0) & 0xff == 27: cv2.destroyAllWindows()
原图
输出图
SubPixel精度的角落
import cv2 import numpy as np filename = 'molecule.png' img = cv2.imread(filename) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # find Harris corners gray = np.float32(gray) dst = cv2.cornerHarris(gray,2,3,0.04) dst = cv2.dilate(dst,None) ret, dst = cv2.threshold(dst,0.01*dst.max(),255,0) dst = np.uint8(dst) # find centroids ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst) # define the criteria to stop and refine the corners criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001) corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria) # Now draw them res = np.hstack((centroids,corners)) res = np.int0(res) img[res[:,1],res[:,0]]=[0,0,255] img[res[:,3],res[:,2]] = [0,255,0] cv2.imwrite('subpixel5.png',img)
输出图
参考
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html#harris-corners
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
目标 在这一章中, 我们将会理解 Harris 角点检测背后的概念 我们会了解 cv2.cornerHarris() 和 cv2.cornerSubPix() 函数的使用方法 理论基础 上一章中,我们已经看到边角是在图像中各个方向上亮度都变化非常大的区域。试图找到这些边角的一个早期尝试由 Chris Harris 和 Mike Stephens 在它们1988年的的论文《A Combined Co
目标 在本章中, 我们将了解"Harris Corner Detection”背后的概念。 我们将看到以下函数:cv.cornerHarris(),cv.cornerSubPix() 理论 在上一章中,我们看到角是图像中各个方向上强度变化很大的区域。Chris Harris和Mike Stephens在1988年的论文《组合式拐角和边缘检测器》中做了一次尝试找到这些拐角的尝试,所以现在将其称为哈里
我有一个盒子的图像。我试图检测角点并从圆圈中标记这些角点。我正在为此使用以下代码:
本文向大家介绍opencv实现矩形检测,包括了opencv实现矩形检测的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了opencv实现矩形检测的具体代码,供大家参考,具体内容如下 效果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
目标 在这一章中: 我们将理解 FAST 算法的基础 我们将使用 OpenCV 中的 FAST 算法来找出角点 理论基础 我们已经看过了几个特征检测器,而且其中许多效果相当好,但是从实时应用程序的角度看,他们还不够快,一个最好的例子就是SLAM^3(即时定位与地图构建),在这种情况下,机器人只有有限的计算资源。 作为这种情况的一种解决方案,FAST(Features from accelerate
本文向大家介绍OpenCV实现人脸检测功能,包括了OpenCV实现人脸检测功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了OpenCV实现人脸检测功能的具体代码,供大家参考,具体内容如下 1、HAAR级联检测 2、 DNN人脸检测 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
目标 在本章中, 我们将了解FAST算法的基础知识。 我们将使用OpenCV功能对FAST算法进行探索。 理论 我们看到了几个特征检测器,其中很多真的很棒。但是,从实时应用程序的角度来看,它们不够快。最好的例子是计算资源有限的SLAM(同时定位和制图)移动机器人 作为对此的解决方案,Edward Rosten和Tom Drummond在2006年的论文“用于高速拐角检测的机器学习”中提出了FAST
我是openCV的新手,我一直在学习为Android提供的示例。 我的目标是检测颜色斑点,所以我从颜色斑点检测样本开始。 我将彩色图像转换为灰度,然后使用二值阈值进行阈值化。 背景是白色的,斑点是黑色的。我想探测那些黑色斑点。此外,我想画他们的彩色轮廓,但我不能这样做,因为图像是黑白的。 我已经设法在灰度中完成了这一点,但我不喜欢轮廓的绘制方式,这就像颜色容差太高,轮廓比实际的斑点大(可能斑点太小