gpt4 book ai didi

python使用numpy实现直方图反向投影示例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python使用numpy实现直方图反向投影示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

最近跟着OpenCV2-Python-Tutorials在学习python_opencv中直方图的反向投影时,第一种方法是使用numpy实现将图中的红色玫瑰分割出来,教程给的代码缺了一句函数,导致实现不出来.

自己加上了后(也不知到这样加对不对)代码和效果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
代码:
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 。

python使用numpy实现直方图反向投影示例

rose.jpg 。

python使用numpy实现直方图反向投影示例

result

python使用numpy实现直方图反向投影示例

以上这篇python使用numpy实现直方图反向投影示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/qq_29023939/article/details/81082040 。

最后此篇关于python使用numpy实现直方图反向投影示例的文章就讲到这里了,如果你想了解更多关于python使用numpy实现直方图反向投影示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com