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


Posted in Python onJanuary 17, 2020

最近跟着OpenCV2-Python-Tutorials在学习python_opencv中直方图的反向投影时,第一种方法是使用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

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

rose.jpg

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

result:

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

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

Python 相关文章推荐
python操作MySQL数据库具体方法
Oct 28 Python
跟老齐学Python之做一个小游戏
Sep 28 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Python telnet登陆功能实现代码
Apr 16 Python
Python接口开发实现步骤详解
Apr 26 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 #Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 #Python
Python autoescape标签用法解析
Jan 17 #Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 #Python
Python with标签使用方法解析
Jan 17 #Python
Python运行DLL文件的方法
Jan 17 #Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 #Python
You might like
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
JS性能优化实现方法及优点进行
2020/08/30 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Python中关于浮点数的冷知识
2019/09/22 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
英文求职信结束语大全
2013/10/26 职场文书
运动会入场式解说词
2014/02/18 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
2015年工程部工作总结
2015/04/30 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL