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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python将字典内容存入mysql实例代码
Jan 18 Python
用python实现对比两张图片的不同
Feb 05 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
如何在Django项目中引入静态文件
Jul 26 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
python 遍历pd.Series的index和value
Nov 26 Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 Python
Python wordcloud库安装方法总结
Dec 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
星际实力自我测试
2020/03/04 星际争霸
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
PHP学习记录之数组函数
2018/06/01 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
常用DOM整理
2015/06/16 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
如何提高数据访问速度
2016/12/26 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
node 版本切换的实现
2020/02/02 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
深入理解python中的select模块
2017/04/23 Python
python实现随机漫步方法和原理
2019/06/10 Python
python3图片文件批量重命名处理
2019/10/31 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
政治表现评语
2014/05/04 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python