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实现查询IP地址所在地
Mar 29 Python
Python实现批量下载文件
May 17 Python
python中input()与raw_input()的区别分析
Feb 27 Python
Python探索之修改Python搜索路径
Oct 25 Python
python编程线性回归代码示例
Dec 07 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
python3利用Socket实现通信的方法示例
May 06 Python
详解python深浅拷贝区别
Jun 24 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
numba提升python运行速度的实例方法
Jan 25 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 header函数分析详解
2011/08/06 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
js function使用心得
2010/05/10 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
详解Angular的8个主要构造块
2017/06/20 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python如何删除文件、目录
2020/06/23 Python
python3爬虫中异步协程的用法
2020/07/10 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
个性与发展自我评价
2014/02/11 职场文书
小学生评语大全
2014/04/18 职场文书
趣味运动会策划方案
2014/06/02 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
十八大标语口号
2014/10/09 职场文书
个人合伙协议书范本
2014/10/14 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Docker官方工具docker-registry案例演示
2022/04/13 Servers