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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python之列表的插入&替换修改方法
Jun 28 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
Python判断有效的数独算法示例
Feb 23 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
Python-jenkins 获取job构建信息方式
May 12 Python
Python web如何在IIS发布应用过程解析
May 27 Python
Python 批量下载阴阳师网站壁纸
May 19 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和ACCESS写聊天室(八)
2006/10/09 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
2012/03/27 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
限制复选框的最大可选数
2006/07/01 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
最基础的Python的socket编程入门教程
2015/04/23 Python
django解决跨域请求的问题
2018/11/11 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
jupyter实现重新加载模块
2020/04/16 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
生日宴会答谢词
2014/01/09 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
廉政承诺书范文
2015/04/28 职场文书
学历证明样本
2015/06/16 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
python迷宫问题深度优先遍历实例
2021/06/20 Python