python使用numpy實(shí)現(xiàn)直方圖反向投影示例
最近跟著OpenCV2-Python-Tutorials在學(xué)習(xí)python_opencv中直方圖的反向投影時(shí),第一種方法是使用numpy實(shí)現(xiàn)將圖中的紅色玫瑰分割出來(lái),教程給的代碼缺了一句函數(shù),導(dǎo)致實(shí)現(xiàn)不出來(lái)。
自己加上了后(也不知到這樣加對(duì)不對(duì))代碼和效果如下:
代碼:
import cv2
import numpy as np
roi = cv2.imread('./data/rose_red.jpg')
hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV)
#target is the image we search in
target = cv2.imread('./data/rose.jpg')
cv2.imshow('target',target)
hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV)
# Find the histograms using calcHist. Can be done with np.histogram2d also
M = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] )
print(M)
I = cv2.calcHist([hsvt],[0, 1], None, [180, 256], [0, 180, 0, 256] )
h,s,v = cv2.split(hsvt)
#斜體是自己加上的
R=M/I
print(R.shape)
B = R[h.ravel(),s.ravel()]
print(B)
B = np.minimum(B,1)
print(B)
B = B.reshape(hsvt.shape[:2])
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(9,9))
B=cv2.filter2D(B,-1,disc)
B = np.uint8(B)
cv2.normalize(B,B,0,255,cv2.NORM_MINMAX)
cv2.imshow('B',B)
ret,thresh = cv2.threshold(B,2,255,0)
cv2.imshow('thresh',thresh)
res = cv2.bitwise_and(target,target,mask=thresh)
cv2.imshow('res',res)
cv2.waitKey(0)
效果:
rose_red.jpg

rose.jpg

result:

以上這篇python使用numpy實(shí)現(xiàn)直方圖反向投影示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 獲取ftp服務(wù)器文件時(shí)間的方法
今天小編就為大家分享一篇Python 獲取ftp服務(wù)器文件時(shí)間的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
yolov5使用flask部署至前端實(shí)現(xiàn)照片\視頻識(shí)別功能
初學(xué)者在使用YOLO和Flask構(gòu)建應(yīng)用時(shí),往往需要實(shí)現(xiàn)上傳圖片和視頻的識(shí)別功能,本文介紹了如何在Flask框架中實(shí)現(xiàn)這一功能,包括文件上傳、圖片放大查看、視頻識(shí)別以及識(shí)別后的文件下載,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
pandas 時(shí)間偏移的實(shí)現(xiàn)
時(shí)間偏移就是在指定時(shí)間往前推或者往后推一段時(shí)間,即加減一段時(shí)間之后的時(shí)間,本文使用Python實(shí)現(xiàn),感興趣的可以了解一下2021-08-08
在Python中使用mongoengine操作MongoDB教程
這篇文章主要介紹了在Python中使用mongoengine操作MongoDB教程,包括在Django下的一些使用技巧,需要的朋友可以參考下2015-04-04
教你如何在pycharm中安裝opencv,tensorflow,keras
今天通過(guò)本教程教大家如何在pycharm中安裝opencv,tensorflow,keras,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
python編程測(cè)試電腦開啟最大線程數(shù)實(shí)例代碼
這篇文章主要介紹了python編程測(cè)試電腦開啟最大線程數(shù)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Python subprocess模塊功能與常見用法實(shí)例詳解
這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實(shí)例形式詳細(xì)分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下2018-06-06
python3使用pyqt5制作一個(gè)超簡(jiǎn)單瀏覽器的實(shí)例
下面小編就為大家?guī)?lái)一篇python3使用pyqt5制作一個(gè)超簡(jiǎn)單瀏覽器的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
Python中uuid模塊生成唯一標(biāo)識(shí)符的方法詳解
這篇文章主要給大家介紹了關(guān)于Python中uuid模塊生成唯一標(biāo)識(shí)符的相關(guān)資料,uuid庫(kù)是Python標(biāo)準(zhǔn)庫(kù)中的一個(gè)功能強(qiáng)大的庫(kù),可以用于生成全局唯一標(biāo)識(shí)符(UUID),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08

