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在控制台输出进度条的方法
Jun 20 Python
利用Python破解验证码实例详解
Dec 08 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python代码缩进和测试模块示例详解
May 07 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
django ORM之values和annotate使用详解
May 19 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
点击文章内容处弹出页面代码
2009/10/01 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
Python 字典与字符串的互转实例
2017/01/13 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python 为什么说eval要慎用
2019/03/26 Python
详解numpy的argmax的具体使用
2019/05/27 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
Django日志及中间件模块应用案例
2020/09/10 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
优秀毕业生求职信
2014/06/05 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
活动经费申请报告
2015/05/15 职场文书