国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python opencv 直方圖反向投影的方法

2020-02-22 23:17:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文介紹了python opencv 直方圖反向投影的方法,分享給大家,具體如下:

目標(biāo):

直方圖反向投影

原理:

反向投影可以用來(lái)做圖像分割,尋找感興趣區(qū)間。它會(huì)輸出與輸入圖像大小相同的圖像,每一個(gè)像素值代表了輸入圖像上對(duì)應(yīng)點(diǎn)屬于目標(biāo)對(duì)象的概率,簡(jiǎn)言之,輸出圖像中像素值越高的點(diǎn)越可能代表想要查找的目標(biāo)。直方圖投影經(jīng)常與camshift(追蹤算法)算法一起使用。

算法實(shí)現(xiàn)的方法,首先要為包含我們感興趣區(qū)域的圖像建立直方圖(樣例要找一片草坪,其他的不要)。被查找的對(duì)象最好是占據(jù)整個(gè)圖像(圖像里全是草坪)。最好使用顏色直方圖,物體的顏色信息比灰度圖像更容易被分割和識(shí)別。再將顏色直方圖投影到輸入圖像查找目標(biāo),也就是找到輸入圖像中每一個(gè)像素點(diǎn)的像素值在直方圖中對(duì)應(yīng)的概率,這樣就得到一個(gè)概率圖像,最后設(shè)置適當(dāng)?shù)拈撝祵?duì)概率圖像進(jìn)行二值化。

numpy算法:

建立兩幅顏色直方圖,目標(biāo)圖像直方圖(M),輸入圖像直方圖(I)

import cv2import numpy as npfrom matplotlib import pyplot as plt#roi圖片,就想要找的的圖片roi = cv2.imread('3.jpg')hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV)#目標(biāo)搜索圖片target = cv2.imread('33.jpg')hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV)#創(chuàng)建直方圖M = cv2.calcHist([hsv],[0,1],None,[180,256],[0,180,0,256])I = cv2.calcHist([hsvt],[0,1],None,[180,256],[0,180,0,256])

計(jì)算比值:R=MI。反向投影R,根據(jù)R這個(gè)調(diào)色板創(chuàng)建新圖像,每一個(gè)像素代表這個(gè)點(diǎn)事目標(biāo)的概率。例如,B(x,y)=R[h(x,y),s(x,y),其中H為點(diǎn)(x,y)的色調(diào)(hue)值,s為點(diǎn)(x,y)的飽和度(saturation)。最后加入條件B(x,y)=min([B(x,y),1]

h,s,v = cv2.split(hsvt)B = R[h.ravel(),s.ravel()]B = np.minimum(B,1)B = B.reshape(hsvt.shape[:2])

使用圓盤算子做卷積,B=D×B,其中D為卷積核

disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))#定義結(jié)構(gòu)形狀,5×5的橢圓B=cv2.filter2D(B,-1,disc)#對(duì)圖像進(jìn)行卷積運(yùn)算B = np.uint8(B)cv2.normalize(B,B,0,255,cv2.NORM_MINMAX)

其中函數(shù)cv2.getStructuringElement是定義結(jié)構(gòu)元素,例如element = cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5)) 定義了一個(gè)十字形,5×5的結(jié)構(gòu)

這里寫圖片描述 

輸出圖像中灰度最大的地方就是目標(biāo)位置。如果要找的是一個(gè)區(qū)域,可以使用一個(gè)閾值對(duì)圖像二值化,這樣能得到不錯(cuò)的結(jié)果。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 上杭县| 卢湾区| 浪卡子县| 六盘水市| 牙克石市| 城步| 夏河县| 大悟县| 九台市| 白河县| 无极县| 崇明县| 徐汇区| 甘德县| 兴山县| 尉犁县| 浑源县| 博野县| 石柱| 揭东县| 大悟县| 河北区| 柳州市| 赣榆县| 米脂县| 根河市| 方城县| 石屏县| 赞皇县| 安丘市| 雷州市| 山阳县| 宾川县| 惠水县| 马龙县| 山西省| 始兴县| 花莲县| 莲花县| 江门市| 禹州市|