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下如何让web元素的生成更简单的分析
Jul 17 Python
跟老齐学Python之一个免费的实验室
Sep 14 Python
python生成随机mac地址的方法
Mar 16 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python用post访问restful服务接口的方法
Dec 07 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python super的使用方法及实例详解
Sep 25 Python
基于Python实现扑克牌面试题
Dec 11 Python
dpn网络的pytorch实现方式
Jan 14 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 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二分法查找数组是否包含某一元素
2013/05/23 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
一些实用的jQuery代码片段收集
2011/07/12 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
js数据类型检测总结
2018/08/05 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Django中的cookie和session
2019/08/27 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Python如何执行系统命令
2020/09/23 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
售后服务科岗位职责范文
2013/11/13 职场文书
庆八一活动方案
2014/01/25 职场文书
演讲稿格式
2014/04/30 职场文书
希特勒的演讲稿
2014/05/23 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2014年团总支工作总结
2014/11/21 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
ubuntu下常用apt命令介绍
2022/06/05 Servers