日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像拐点检测-原理以及代码实现

發(fā)布時間:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像拐点检测-原理以及代码实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


今天帶來的內(nèi)容只用兩個字形容-干貨!!首先我們科普下圖像識別的常識,圖片在電腦看來,其實(shí)就是一個矩陣,每個矩陣中的一個值都對應(yīng)圖片的一個像素點(diǎn)。(下圖摘自《機(jī)器學(xué)習(xí)實(shí)踐應(yīng)用》)


圖片中其實(shí)是有很多的邊以及拐角的,今天要介紹的就是如何通過算法找到圖片拐角。??



原理

其實(shí)找到拐角,很簡單,就是在圖片矩陣中,通過一個移動的窗口去遍歷矩陣中的數(shù)值,一旦返現(xiàn)有像素變化明顯的地方,那就可能是一個拐點(diǎn)。這個過程就有點(diǎn)像“拿澡巾閉著眼睛從上向下搓澡,當(dāng)你搓到一個硬硬的東西的時候,你會感覺這個部位跟其它的地方不同,沒錯,這里就是你的膝蓋。”?


還是正經(jīng)一點(diǎn),看一下數(shù)學(xué)公式,(x,y)可以理解成是一張圖片的橫縱坐標(biāo),就是人的身體。(u,v)就是窗口函數(shù),就是移動的澡巾。找圖片的拐點(diǎn)就跟搓澡去找身體堅硬的地方一樣,需要不斷游動(u,v)的值,當(dāng)這個值劇烈變化了,就說明出現(xiàn)了拐點(diǎn)。



最終通過數(shù)學(xué)方法,可以簡化上邊的函數(shù)式,過程很復(fù)雜,大家會意下就好,最終的結(jié)果:


R是這樣判斷的,R=MIN(x',y'),x'表示圖片橫向的變化趨勢,y‘表示圖片縱向的變化趨勢,這個可以用一張圖解釋下,

(1)下圖左數(shù)第一張是y’向變化很小,而x‘向變化大,可以設(shè)定為x'>0,y'<0,于是R<0。

(2)中間的一張兩個方向都不變,R=0

(3)最右邊一張兩個方向變化都很大,x'>0,y'>0,R>0


于是,最右邊的圖是拐角,最左邊的是邊,中間的什么都不是。


代碼

下面就用一段OPENCV的代碼實(shí)現(xiàn)一下拐點(diǎn)檢測,可以通過紅點(diǎn)把拐角的地方標(biāo)出來,給大家一個直觀印象。


import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('sample.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) corners = cv2.goodFeaturesToTrack(gray,25,0.01,10) corners = np.int0(corners) for i in corners: x,y = i.ravel() cv2.circle(img,(x,y),3,255,-1) plt.imshow(img),plt.show()


再跑一個case給大家看看,身邊沒有拐角特別明顯的東西,隨手弄了張感覺比較明顯的拐角圖,恩!

原圖:



運(yùn)行結(jié)果:



今天代碼寫的我快缺氧了,歡迎猛烈轉(zhuǎn)載,良心制作,謝謝!

參考:

https://blog.csdn.net/woxincd/article/details/60754658

https://blog.csdn.net/qq_41352018/article/details/79944481

總結(jié)

以上是生活随笔為你收集整理的图像拐点检测-原理以及代码实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。