最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV哈里斯角檢測|Harris?Corner理論實踐

 更新時間:2023年04月13日 09:50:06   作者:uncle_ll  
這篇文章主要為大家介紹了OpenCV哈里斯角檢測|Harris?Corner理論實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

目標(biāo)

在本章中,將學(xué)習(xí)

  • "Harris Corner Detection”背后的思想
  • 函數(shù):cv2.cornerHarris(),cv.2cornerSubPix()

理論

可以用如下圖來表示:

因此,Harris Corner Detection的結(jié)果是具有這些分?jǐn)?shù)的灰度圖像。合適的閾值可提供圖像的各個角落。

OpenCV中的哈里斯角檢測

在OpenCV中有實現(xiàn)哈里斯角點檢測,cv2.cornerHarris()。其參數(shù)為:

dst = cv2.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]] )

  • src - 輸入圖像,灰度和float32類型
  • blockSize - 是拐角檢測考慮的鄰域大小
  • ksize - 使用的Sobel導(dǎo)數(shù)的光圈參數(shù)
  • k- 等式中的哈里斯檢測器自由參數(shù)
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('chessboard.png')
img_copy = img.copy()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
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()]=[255,0,0]
# plot
plt.subplot(121)
plt.imshow(img_copy, cmap='gray')
plt.xticks([])
plt.yticks([])
plt.subplot(122)
plt.imshow(img, cmap='gray')
plt.xticks([])
plt.yticks([])
plt.show()

以下是結(jié)果:

可以看到,各個角點已經(jīng)標(biāo)紅。

SubPixel精度的轉(zhuǎn)角

有時候可能需要找到最精確的角點。OpenCV附帶了一個函數(shù)cv2.cornerSubPix(),它進一步細(xì)化了以亞像素精度檢測到的角點。下面是一個例子。

  • 和之前一樣,首先需要先找到哈里斯角點
  • 然后通過這些角的質(zhì)心(可能在一個角上有一堆像素,取它們的質(zhì)心)來細(xì)化它們
  • Harris角用紅色像素標(biāo)記,SubPixel角用綠色像素標(biāo)記

對于cv2.cornerSubPix()函數(shù),必須定義停止迭代的條件。我們可以在特定的迭代次數(shù)或達(dá)到一定的精度后停止它。此外,還需要定義它將搜索角點的鄰居的大小。

corners = cv.cornerSubPix( image, corners, winSize, zeroZone, criteria )

  • image: 輸入圖像,單通道
  • corners: 輸入的初始坐標(biāo)和為輸出提供的精制坐標(biāo)
  • winSize: 搜索窗口的一半側(cè)面長度
  • zeroZone: 搜索區(qū)域中間的死區(qū)大小的一半在下面的公式中的求和,有時用于避免自相關(guān)矩陣的可能奇點。(−1,−1)(-1,-1)(−1,−1) 的值表示沒有這樣的尺寸
  • criteria: 終止角點細(xì)化過程的條件
# sub pixel更精度角點
import cv2
import numpy as np
img = cv2.imread('chessboard2.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# find Harris corners
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.imshow('subpixel', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

以下是結(jié)果, 可以看到SubPixel更精確一點:

附加資源

docs.opencv.org/4.1.2/dd/d1…

docs.opencv.org/4.1.2/dd/d1…

docs.opencv.org/4.1.2/dd/d1…

docs.opencv.org/4.1.2/d4/d8…

docs.opencv.org/4.1.2/dd/d1…

以上就是OpenCV哈里斯角檢測|Harris Corner理論實踐的詳細(xì)內(nèi)容,更多關(guān)于OpenCV哈里斯角檢測的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python可視化hdf5文件的操作

    python可視化hdf5文件的操作

    這篇文章主要介紹了python可視化hdf5文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Django中的cookie和session

    Django中的cookie和session

    這篇文章主要介紹了Django中的cookie和session實例詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • python可視化爬蟲界面之天氣查詢

    python可視化爬蟲界面之天氣查詢

    這篇文章主要介紹了python可視化爬蟲界面之天氣查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python3 判斷列表是一個空列表的方法

    python3 判斷列表是一個空列表的方法

    今天小編就為大家分享一篇python3 判斷列表是一個空列表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Pycharm項目代碼同步到Gitee的圖文步驟

    Pycharm項目代碼同步到Gitee的圖文步驟

    本文主要介紹了Pycharm項目代碼同步到Gitee的圖文步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Flask框架實現(xiàn)debug模式下計算pin碼

    Flask框架實現(xiàn)debug模式下計算pin碼

    pin碼也就是flask在開啟debug模式下,進行代碼調(diào)試模式的進入密碼。本文為大家整理了Flask框架在debug模式下計算pin碼的方法,需要的可以參考一下
    2023-02-02
  • Python Excel實現(xiàn)自動添加編號

    Python Excel實現(xiàn)自動添加編號

    這篇文章主要為大家詳細(xì)介紹了如何使用Python在Excel中實現(xiàn)自動添加編號效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • 詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案

    詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案

    這篇文章主要介紹了詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • django 將model轉(zhuǎn)換為字典的方法示例

    django 將model轉(zhuǎn)換為字典的方法示例

    平常的開發(fā)過程中不免遇到需要把model轉(zhuǎn)成字典的需求,這篇文章主要介紹了Django model轉(zhuǎn)字典的方法,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • 五種Python轉(zhuǎn)義表示法

    五種Python轉(zhuǎn)義表示法

    這篇文章主要介紹了五種Python轉(zhuǎn)義表示法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

子长县| 晋城| 吕梁市| 安多县| 石城县| 仲巴县| 当阳市| 新疆| 神木县| 梅河口市| 策勒县| 宣恩县| 贵南县| 乌兰浩特市| 二连浩特市| 柏乡县| 嫩江县| 福泉市| 扶沟县| 石家庄市| 灵山县| 雷州市| 齐河县| 曲松县| 冷水江市| 石林| 巴林左旗| 化德县| 保德县| 开阳县| 大竹县| 广德县| 上饶县| 泰和县| 汽车| 志丹县| 甘肃省| 新蔡县| 西充县| 专栏| 桓台县|