python使用numpy實(shí)現(xiàn)直方圖反向投影示例
最近跟著OpenCV2-Python-Tutorials在學(xué)習(xí)python_opencv中直方圖的反向投影時,第一種方法是使用numpy實(shí)現(xiàn)將圖中的紅色玫瑰分割出來,教程給的代碼缺了一句函數(shù),導(dǎo)致實(shí)現(xiàn)不出來。
自己加上了后(也不知到這樣加對不對)代碼和效果如下:
代碼: 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)直方圖反向投影示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 點(diǎn)云地面點(diǎn)濾波-progressive TIN densification(PTD)算法介紹
關(guān)于地面點(diǎn)濾波的概念我們要與孤立點(diǎn)(outlier)濾波區(qū)分開,孤立點(diǎn)濾波可以理解為圖像中的去噪,去除數(shù)據(jù)測量過程中受到飛鳥、多路徑效應(yīng)所產(chǎn)生的遠(yuǎn)低于/高于其他數(shù)據(jù)的點(diǎn)。今天通過本文給大家分享python PTD點(diǎn)云地面點(diǎn)濾波的相關(guān)知識,一起看看吧2021-08-08python?pyvis庫創(chuàng)建可視化交互式網(wǎng)絡(luò)圖
這篇文章主要為大家介紹了python?pyvis庫創(chuàng)建可視化交互式網(wǎng)絡(luò)圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01C#中使用XPath定位HTML中的img標(biāo)簽的操作示例
隨著互聯(lián)網(wǎng)內(nèi)容的日益豐富,網(wǎng)頁數(shù)據(jù)的自動化處理變得愈發(fā)重要,圖片作為網(wǎng)頁中的重要組成部分,其獲取和處理在許多應(yīng)用場景中都顯得至關(guān)重要,本文將詳細(xì)介紹如何在 C# 應(yīng)用程序中使用 XPath 定位 HTML 中的 img 標(biāo)簽,并實(shí)現(xiàn)圖片的下載,需要的朋友可以參考下2024-07-07