国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Python手動實現(xiàn)Harris角點檢測

這篇具有很好參考價值的文章主要介紹了基于Python手動實現(xiàn)Harris角點檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近在上數(shù)字圖像處理課程,需要使用Python手動編寫Harris角點檢測算法,但是網(wǎng)上幾乎沒有找到手動編寫的,只能手敲。

基于Python手動實現(xiàn)Harris角點檢測

同時作為自己的第一篇博客,在這里記錄一下。

一、Harris角點檢測

原理(略)

可以參考博主 拾牙慧者 的博客

角點檢測(Harris角點檢測法)_拾牙慧者的博客-CSDN博客_harris角點檢測

二、Python中的Harris角點檢測函數(shù)

Opencv庫自帶函數(shù):cornerHarris()函數(shù)

void cornerHarris( InputArray src, OutputArray dst, int block Size,  int ksize, double k, int borderType = BORDER_DEFAULT)

參數(shù)如下

1.InputArray類型的src,輸入圖像,即原圖像,填Mat類型即可,且需要為單通道8位或者浮點型圖像;
2.OutputArray類型的dst,函數(shù)調(diào)用后的運算結(jié)果存在這里,即這個參數(shù)用于存放Harris角點檢測的輸出結(jié)果,和原圖片有一樣的尺寸和類型;
3.int類型的blockSize,表示鄰域的大小,更多詳細(xì)信息在cornerEigenValsAndVecs()中講到;
4.int類型的ksize,表示Sobel()算子的孔徑的大小;
5.double類型的k,Harris參數(shù);
6.int類型的borderType,圖像像素的邊界模式。注意它有默認(rèn)值BORDER_DEFAULT;

使用方法

import cv2
import numpy as np

img = cv2.imread('exp3/NEU_library.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = gray.astype(np.float32)
dst = cv2.cornerHarris(gray,5,3,0.04)
img[dst>0.01*dst.max()] = [0,0,255]
cv2.imshow('',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

結(jié)果如下(東北大學(xué)寧恩承圖書館)

基于Python手動實現(xiàn)Harris角點檢測

三、手動寫Python代碼實現(xiàn)Harris焦點檢測算法

import cv2 
import numpy as np

def My_corner_Harris(image, blockSize, ksize, k):
    #將圖片轉(zhuǎn)化為灰度圖像,并轉(zhuǎn)化類型為float32
    gray_img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    src = gray_img.astype(np.float32)

    #獲取圖像長和高
    SrcHeight = src.shape[0]
    SrcWidth = src.shape[1]

    #利用Sobel函數(shù)計算圖像梯度
    #src為原圖像,-1表示輸出圖像大小與原圖像相同
    #ksize為sobel算子,定義為角點檢測敏感度,必須為3-31之間的奇數(shù)
    #(1,0)表示對x求偏導(dǎo),(0,1)表示對y求偏導(dǎo)
    Ix=cv2.Sobel(src,-1,1,0,ksize)
    Iy=cv2.Sobel(src,-1,0,1,ksize)

    #計算Ix2, Ixy, Iy2
    Ix2=np.multiply(Ix,Ix)
    Ixy=np.multiply(Ix,Iy)
    Iy2=np.multiply(Iy,Iy)

    #使用高斯平滑濾波進(jìn)行加權(quán)計算
    Ix2=cv2.GaussianBlur(Ix2,(blockSize,blockSize),1.3)
    Ixy=cv2.GaussianBlur(Ixy,(blockSize,blockSize),1.3)
    Iy2=cv2.GaussianBlur(Iy2,(blockSize,blockSize),1.3)

    #計算最后的R值
    R=np.zeros((SrcHeight,SrcWidth))#定義空的R矩陣
    for i in range(SrcHeight):
        for j in range(SrcWidth):
            M=np.array([[Ix2[i,j],Ixy[i,j]],[Ixy[i,j],Iy2[i,j]]])
            R[i,j]= np.linalg.det(M) - k * ((M.trace())**2)
    return R

# detector parameters
block_size = 5
sobel_size = 3
k = 0.04

image = cv2.imread('exp3/NEU_library.jpg')
R  = My_corner_Harris(image, block_size, sobel_size, k)
image[R>0.01*R.max()] = [0,0,255]

cv2.imshow('detection result', image)

cv2.waitKey(0)
cv2.destroyAllWindows()

測試一下結(jié)果

基于Python手動實現(xiàn)Harris角點檢測

?和官方的cornerHarris()函數(shù)對比一下

基于Python手動實現(xiàn)Harris角點檢測? ?基于Python手動實現(xiàn)Harris角點檢測

? ? ? ? ? ? ? ? ? ? ? cornerHarris()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?My_corner_Harris

四、總結(jié)

1.簡單手動實現(xiàn)Harris角點檢測算法,未進(jìn)行改進(jìn)

2.可以考慮非極大值進(jìn)行抑制,參考Harris角點算法 - bldong - 博客園 (cnblogs.com)

3.后續(xù)會考慮實現(xiàn)Shi-Tomasi、亞像素檢測等方法,做出來的話會更新。

此致

? ? ? ? 感謝閱讀

WSZYM?

2022.12.01文章來源地址http://www.zghlxwxcb.cn/news/detail-412745.html

到了這里,關(guān)于基于Python手動實現(xiàn)Harris角點檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • OpenCV(四十二):Harris角點檢測

    OpenCV(四十二):Harris角點檢測

    1.Harris角點介紹 什么是角點? 角點指的是兩條邊的交點,圖中紅色圈起來的點就是角點。 Harris角點檢測原理:首先定義一個矩形區(qū)域,然后將這個矩形區(qū)域放置在我的圖像中,求取這個區(qū)域內(nèi)所有的像素值之和,之后沿著多個方向移動我這個區(qū)域,再次計算新區(qū)域的像素值

    2024年02月07日
    瀏覽(93)
  • OpenCV 入門教程: Harris角點檢測

    Harris 角點檢測是圖像處理中常用的角點檢測算法,用于尋找圖像中的角點特征。角點是圖像中具有明顯邊緣變化的位置,具有獨特性和不變性,常用于圖像匹配、目標(biāo)跟蹤和特征提取等應(yīng)用。本文將以 Harris 角點檢測為中心,為你介紹使用 OpenCV 進(jìn)行角點檢測的基本原理、步

    2024年02月16日
    瀏覽(99)
  • opencv進(jìn)階14-Harris角點檢測-cv2.cornerHarris

    opencv進(jìn)階14-Harris角點檢測-cv2.cornerHarris

    類似于人的眼睛和大腦,OpenCV可以檢測圖像的主要特征并將這 些特征提取到所謂的圖像描述符中。然后,可以將這些特征作為數(shù)據(jù) 庫,支持基于圖像的搜索。此外,我們可以使用關(guān)鍵點將圖像拼接起 來,組成更大的圖像。(想象一下把很多圖片放到一起組成一幅360°的全景

    2024年02月11日
    瀏覽(293)
  • Harris和Shi-tomasi角點檢測筆記(詳細(xì)推導(dǎo))

    Harris和Shi-tomasi角點檢測筆記(詳細(xì)推導(dǎo))

    ? ? ? ? 一般來說,角點就是極值點,在某些屬性上強(qiáng)度最大或者最小的孤立點、線段的終點或拐點等。其實理解角點可以按照我們的直覺來理解,以下圖為例,圖中用顏色標(biāo)注的地方都是角點: ? ? ? ? 原圖地址:理解經(jīng)典角點檢測算法–Harris角點 | 碼農(nóng)家園? ? ? ? ?

    2024年02月11日
    瀏覽(86)
  • Opencv中g(shù)oodFeaturesToTrack函數(shù)(Harris角點、Shi-Tomasi角點檢測)算子速度的進(jìn)一步優(yōu)化(1920*1080測試圖11ms處理完成)。

    Opencv中g(shù)oodFeaturesToTrack函數(shù)(Harris角點、Shi-Tomasi角點檢測)算子速度的進(jìn)一步優(yōu)化(1920*1080測試圖11ms處理完成)。

    搜索到某個效果很好的視頻去燥的算法,感覺效果比較牛逼,就是速度比較慢,如果能做到實時,那還是很有實用價值的。于是盲目的選擇了這個課題,遇到的第一個函數(shù)就是角點檢測,大概六七年用過C#實現(xiàn)過Harris角點以及SUSAN角點。因此相關(guān)的理論還是有所了解的,不過那

    2024年02月06日
    瀏覽(89)
  • 基于Harris角點的多視角圖像全景拼接算法matlab仿真

    基于Harris角點的多視角圖像全景拼接算法matlab仿真

    目錄 1.算法運行效果圖預(yù)覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 Harris角點檢測 4.2 圖像配準(zhǔn) 4.3 圖像變換和拼接 4.4 全景圖像優(yōu)化 5.算法完整程序工程 matlab2022a ? ? ? ? 基于Harris角點的多視角圖像全景拼接算法是一種在計算機(jī)視覺和圖像處理領(lǐng)域中廣泛應(yīng)用

    2024年01月18日
    瀏覽(25)
  • 模式識別與圖像處理課程實驗一:圖像處理實驗(顏色算子實驗、Susan、Harris角點檢測實驗、 sobel邊緣算子檢測實驗)

    模式識別與圖像處理課程實驗一:圖像處理實驗(顏色算子實驗、Susan、Harris角點檢測實驗、 sobel邊緣算子檢測實驗)

    要求編寫一個包含顏色算子,Susan,Harris,角點,sobel邊緣算子的程。 實驗的程序如下 運行結(jié)果如下 實驗原圖 實驗結(jié)果圖 實驗的程序如下 運行結(jié)果如下 實驗原圖 實驗結(jié)果圖 實驗的程序如下 運行結(jié)果如下 實驗原圖 實驗結(jié)果圖 Susan角點檢測程序如下 運行結(jié)果如下 實驗原圖

    2024年02月02日
    瀏覽(30)
  • OpenCV基本圖像處理操作(十)——圖像特征harris角點

    OpenCV基本圖像處理操作(十)——圖像特征harris角點

    角點 角點是圖像中的一個特征點,指的是兩條邊緣交叉的點,這樣的點在圖像中通常表示一個顯著的幾角。在計算機(jī)視覺和圖像處理中,角點是重要的特征,因為它們通常是圖像中信息豐富的區(qū)域,可以用于圖像分析、對象識別、3D建模等多種應(yīng)用。 角點的識別可以幫助在進(jìn)

    2024年04月23日
    瀏覽(103)
  • SUSAN角點檢測算法實現(xiàn)(詳細(xì)版)

    SUSAN角點檢測算法實現(xiàn)(詳細(xì)版)

    無 一、SUSAN算子是什么? ????????SUSAN ( Small univalue segment assimilating nucleus) 算子是一種基于灰度的特征點獲取方法, 適用于圖像中邊緣和角點的檢測, 可以去除圖像中的噪聲, 它具有簡單、有效、抗噪聲能力強(qiáng)、計算速度快的特點。 ? ? ? ? 對于圖像中非紋理區(qū)域的任一點

    2024年02月07日
    瀏覽(25)
  • Python Opencv實踐 - Shi-Tomasi角點檢測

    Python Opencv實踐 - Shi-Tomasi角點檢測

    參考資料:Harris和Shi-tomasi角點檢測筆記(詳細(xì)推導(dǎo))_harris焦點檢測_亦楓Leonlew的博客-CSDN博客 ?cv.goodFeaturesToTrack:Shi-Tomasi角點檢測-OpenCV-python_獨憩的博客-CSDN博客 ?

    2024年02月09日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包