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的类实例属性访问规则探讨
Jan 30 Python
对python中return和print的一些理解
Aug 18 Python
Python3.x对JSON的一些操作示例
Sep 01 Python
Python中enumerate函数代码解析
Oct 31 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
利用python求积分的实例
Jul 03 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
Python文件夹批处理操作代码实例
Jul 21 Python
python如何运行js语句
Sep 09 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
PyTorch device与cuda.device用法
Apr 03 Python
Python何绘制带有背景色块的折线图
Apr 23 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python 检查文件mime类型的方法
2018/12/08 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
应届生求职自荐信
2014/07/04 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
担保书范文
2015/01/20 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
详解Redis集群搭建的三种方式
2021/05/31 Redis