欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

openCV顯著性檢測的使用

 更新時間:2022年03月28日 10:50:29   作者:山居秋暝LS  
顯著性檢測就是使用圖像處理技術(shù)和計算機視覺算法來定位圖片中最“顯著”的區(qū)域,本文主要介紹了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)文章

最新評論