这篇文章将为大家详细讲解有关python如何使用numpy实现直方图反向投影,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
自己加上了后(也不知到这样加对不对)代码和效果如下:
代码: 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实现直方图反向投影”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。