openCV顯著性檢測的使用
1. 概念
顯著性檢測,就是使用圖像處理技術和計算機視覺算法來定位圖片中最“顯著”的區(qū)域。顯著區(qū)域就是指圖片中引人注目的區(qū)域或比較重要的區(qū)域,例如人眼在觀看一幅圖片時會首先關注的區(qū)域。例如下圖,我們人眼一眼看過去首先注意到的不是草坪,而是躺在草坪上的內馬爾,內馬爾所在的區(qū)域就是顯著性區(qū)域。這種自動定位圖像或場景重要區(qū)域的過程稱為顯著性檢測。顯著性檢測在目標檢測、機器人領域有很多應用。
在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ū)域,返回結果是和輸入圖片一樣大小的矩陣,每個像素位置的取值[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()到此這篇關于openCV顯著性檢測的使用的文章就介紹到這了,更多相關openCV顯著性檢測內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Anaconda+Pycharm環(huán)境下的PyTorch配置方法
這篇文章主要介紹了Anaconda+Pycharm環(huán)境下的PyTorch配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
對python3 Serial 串口助手的接收讀取數據方法詳解
今天小編就為大家分享一篇對python3 Serial 串口助手的接收讀取數據方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
opencv-python+yolov3實現(xiàn)目標檢測
因為最近的任務有用到目標檢測,快速地了解了目標檢測這一任務,并且實現(xiàn)了使用opencv進行目標檢測。感興趣的可以了解一下2021-06-06

