亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)算法

瀏覽:87日期:2022-07-02 14:39:53
算法流程: 將圖像轉(zhuǎn)換為灰度圖像 利用Sobel濾波器求出 海森矩陣 (Hessian matrix) :

python 實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)算法

將高斯濾波器分別作用于Ix²、Iy²、IxIy 計(jì)算每個(gè)像素的 R= det(H) - k(trace(H))²。det(H)表示矩陣H的行列式,trace表示矩陣H的跡。通常k的取值范圍為[0.04,0.16]。 滿足 R>=max(R) * th 的像素點(diǎn)即為角點(diǎn)。th常取0.1。Harris算法實(shí)現(xiàn):

import cv2 as cv import numpy as npimport matplotlib.pyplot as plt# Harris corner detectiondef Harris_corner(img):## Grayscaledef BGR2GRAY(img):gray = 0.2126 * img[..., 2] + 0.7152 * img[..., 1] + 0.0722 * img[..., 0]gray = gray.astype(np.uint8)return gray## Sobeldef Sobel_filtering(gray):# get shapeH, W = gray.shape# sobel kernelsobely = np.array(((1, 2, 1),(0, 0, 0),(-1, -2, -1)), dtype=np.float32)sobelx = np.array(((1, 0, -1),(2, 0, -2),(1, 0, -1)), dtype=np.float32)# paddingtmp = np.pad(gray, (1, 1), ’edge’)# prepareIx = np.zeros_like(gray, dtype=np.float32)Iy = np.zeros_like(gray, dtype=np.float32)# get differentialfor y in range(H):for x in range(W):Ix[y, x] = np.mean(tmp[y : y + 3, x : x + 3] * sobelx)Iy[y, x] = np.mean(tmp[y : y + 3, x : x + 3] * sobely)Ix2 = Ix ** 2Iy2 = Iy ** 2Ixy = Ix * Iyreturn Ix2, Iy2, Ixy# gaussian filteringdef gaussian_filtering(I, K_size=3, sigma=3):# get shapeH, W = I.shape## gaussianI_t = np.pad(I, (K_size // 2, K_size // 2), ’edge’)# gaussian kernelK = np.zeros((K_size, K_size), dtype=np.float)for x in range(K_size):for y in range(K_size):_x = x - K_size // 2_y = y - K_size // 2K[y, x] = np.exp( -(_x ** 2 + _y ** 2) / (2 * (sigma ** 2)))K /= (sigma * np.sqrt(2 * np.pi))K /= K.sum()# filteringfor y in range(H):for x in range(W):I[y,x] = np.sum(I_t[y : y + K_size, x : x + K_size] * K)return I# corner detectdef corner_detect(gray, Ix2, Iy2, Ixy, k=0.04, th=0.1):# prepare output imageout = np.array((gray, gray, gray))out = np.transpose(out, (1,2,0))# get RR = (Ix2 * Iy2 - Ixy ** 2) - k * ((Ix2 + Iy2) ** 2)# detect cornerout[R >= np.max(R) * th] = [255, 0, 0]out = out.astype(np.uint8)return out# 1. grayscalegray = BGR2GRAY(img)# 2. get difference imageIx2, Iy2, Ixy = Sobel_filtering(gray)# 3. gaussian filteringIx2 = gaussian_filtering(Ix2, K_size=3, sigma=3)Iy2 = gaussian_filtering(Iy2, K_size=3, sigma=3)Ixy = gaussian_filtering(Ixy, K_size=3, sigma=3)# 4. corner detectout = corner_detect(gray, Ix2, Iy2, Ixy)return out# Read imageimg = cv.imread('../qiqiao.jpg').astype(np.float32)# Harris corner detectionout = Harris_corner(img)cv.imwrite('out.jpg', out)cv.imshow('result', out)cv.waitKey(0)cv.destroyAllWindows()實(shí)驗(yàn)結(jié)果:

原圖:

python 實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)算法

Harris角點(diǎn)檢測(cè)算法檢測(cè)結(jié)果:

python 實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)算法

以上就是python 實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)算法的詳細(xì)內(nèi)容,更多關(guān)于python Harris角點(diǎn)檢測(cè)算法的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 可以直接看黄的网站 | 黄在线| a级毛片在线视频免费观看 a级毛片在线播放 | 国产精品真实对白精彩久久 | 国产精品综合色区在线观看 | 大尺度一级毛片波多野结衣 | 亚洲一区二区三区久久久久 | 五月亭亭六月丁香 | 爽爽爽爽爽爽a成人免费视频 | 国语自产拍天天在线 | 亚洲色播永久网址大全 | 成年女人免费又黄又爽视频 | 天天影视色综合 | 911国产在线观看精品 | 国产成人啪精品午夜在线观看 | 伊人久久综合影院首页 | 在线观看亚洲一区二区 | 欧美特级毛片a够爽 | 成年1314在线观看 | 亚洲婷婷天堂在线综合 | 中文字幕日韩理论在线 | 一区二区三区影视 | 欧美高清国产在线观看 | 性殴美 | 国产黄色a | 国产精品一级二级三级 | 特黄录像| 天天看天天摸色天天综合网 | 国产一区日韩二区欧美三区 | 国产福利一区二区在线观看 | 欧美人成人亚洲专区中文字幕 | 成人www| 黄色在线观看www | 久久伊人青青 | 99人体做爰视频 | 12306播播影院午夜 | 亚洲一页 | 精品精品国产高清a毛片 | 国模双双大尺度炮交g0go | 亚洲青草视频 | 国产黄色一级毛片 |