openCV顯著性檢測的使用
1. 概念
顯著性檢測,就是使用圖像處理技術(shù)和計算機視覺算法來定位圖片中最“顯著”的區(qū)域。顯著區(qū)域就是指圖片中引人注目的區(qū)域或比較重要的區(qū)域,例如人眼在觀看一幅圖片時會首先關(guān)注的區(qū)域。例如下圖,我們?nèi)搜垡谎劭催^去首先注意到的不是草坪,而是躺在草坪上的內(nèi)馬爾,內(nèi)馬爾所在的區(qū)域就是顯著性區(qū)域。這種自動定位圖像或場景重要區(qū)域的過程稱為顯著性檢測。顯著性檢測在目標檢測、機器人領(lǐng)域有很多應(yīng)用。
在OpenCV的saliency模塊中有三種顯著性檢測算法:
- Static saliency:此類顯著性檢測算法依賴于圖像特征和統(tǒng)計信息來定位圖像中顯著性區(qū)域。
- Motion saliency: 此類顯著性檢測算法輸入為視頻或一系列連續(xù)幀。運動顯著性算法處理這些連續(xù)的幀,并跟蹤幀中“移動”的對象。這些移動的對象被認為是顯著性區(qū)域。
- Objectness:這類顯著性檢測算法計算出一個個的建議區(qū)域(proposals),這些建議區(qū)域被認為是目標可能存在的區(qū)域。
OpenCV提供類4種顯著性檢測算法的實現(xiàn):
- cv2.saliency.ObjectnessBING_create()
- cv2.saliency.StaticSaliencySpectralResidual_create()
- cv2.saliency.StaticSaliencyFineGrained_create()
- cv2.saliency.MotionSaliencyBinWangApr2014_create()
2 靜態(tài)顯著性檢測
static_saliency.py使用兩種Static saliency算法:cv2.saliency.StaticSaliencySpectralResidual_create()和cv2.saliency.StaticSaliencyFineGrained_create()。使用computeSaliency()計算圖片的顯著性區(qū)域,返回結(jié)果是和輸入圖片一樣大小的矩陣,每個像素位置的取值[0,1],值越大表示該像素位置越顯著。最后我將返回顯著性矩陣可視化出來。
3 代碼
''' 2 圖像凸顯 ''' import cv2 import matplotlib.pyplot as plt # 1 read img = cv2.imread('luna.png',1) img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 2 StaticSaliencySpectralResidual_create() Residual = cv2.saliency.StaticSaliencySpectralResidual_create() _,img_Residual = Residual.computeSaliency(img) img_Residual = (img_Residual * 255).astype("uint8") # 3 saliency.StaticSaliencyFineGrained_create() Grained = cv2.saliency.StaticSaliencyFineGrained_create() _,img_Grained = Grained.computeSaliency(img) img_Grained = (img_Grained*255).astype('uint8') thre = cv2.threshold(img_Grained, 0, 255, ? ? ? ? ? ? ? ? ? ? ?cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1] # 4 show plt.subplot(221) plt.imshow(img) plt.title('img') plt.subplot(222) plt.imshow(img_Residual) plt.title('img_Residual') # plt.subplot(223) plt.imshow(img_Grained) plt.title('img_Grained') plt.subplot(224) plt.imshow(thre) plt.title('thre') plt.show()
到此這篇關(guān)于openCV顯著性檢測的使用的文章就介紹到這了,更多相關(guān)openCV顯著性檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python輸入、數(shù)據(jù)類型轉(zhuǎn)換及運算符方式
這篇文章主要介紹了python輸入、數(shù)據(jù)類型轉(zhuǎn)換及運算符方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Anaconda+Pycharm環(huán)境下的PyTorch配置方法
這篇文章主要介紹了Anaconda+Pycharm環(huán)境下的PyTorch配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03Python通過Schema實現(xiàn)數(shù)據(jù)驗證方式
這篇文章主要介紹了Python通過Schema實現(xiàn)數(shù)據(jù)驗證方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11對python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解
今天小編就為大家分享一篇對python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06opencv-python+yolov3實現(xiàn)目標檢測
因為最近的任務(wù)有用到目標檢測,快速地了解了目標檢測這一任務(wù),并且實現(xiàn)了使用opencv進行目標檢測。感興趣的可以了解一下2021-06-06