Python3与OpenCV3.3 图像处理(十三)--反射投影
来源:互联网 发布:windows版本怎么更换 编辑:程序博客网 时间:2024/06/11 02:36
一、什么是反射投影
简单的说就是通过给定的直方图信息,在图像找到相应的像素分布区域
二、反射投影的应用
物体跟踪、定位物体等
三、示例代码
import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef hist2d(image): """2d 直方图计算和现实""" #转换为hsv色彩空间 hsv=cv.cvtColor(image,cv.COLOR_BGR2HSV) #[180,256] bins 越多对每个像素细分的越厉害,会导致反响直方图的碎片化 #[0,180,0,256]:hsv色彩空间中 h和s的取值范围,只是固定的 hist=cv.calcHist([image],[0,1],None,[180,256],[0,180,0,256]) #interpolation:差值方式 plt.imshow(hist,interpolation='nearest') #直方图名字 plt.title("2D hist") #图三 plt.show()def backProjection(): """直方图反响投影""" #样本图片 sample=cv.imread('pzfb.jpg') #目标片图片 target=cv.imread('pz.jpg') sample_hsv=cv.cvtColor(sample,cv.COLOR_BGR2HSV) target_hsv=cv.cvtColor(target,cv.COLOR_BGR2HSV) #图一 cv.imshow("sample",sample) #图二 cv.imshow("target",target) #获得样本图片直方图 #[0,1]:用于计算直方图的通道,这里使用hsv计算直方图,所以就直接使用第一h和第二通道,即h和s通道; #None:是否使用mask,None 否 #[32,32] bins 越多对每个像素细分的越厉害,会导致反响直方图的碎片化 #[0,180,0,256]:hsv色彩空间中 h和s的取值范围,是固定的 sample_hist=cv.calcHist([sample_hsv],[0,1],None,[32,32],[0,180,0,256]) #规划样本图片直方图 #sample_hist:输入的矩阵 #sample_hist:归一化后的矩阵 #0:归一化后的矩阵的最小值 #255:归一化后的矩阵的最大值 #cv.NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用 cv.normalize(sample_hist,sample_hist,0,255,cv.NORM_MINMAX) #生成反响投影 #target_hsv:目标图像hsv矩阵 #[0,1]:用于计算直方图反射投影的通道,这里使用hsv计算直方图,所以就直接使用第一h和第二通道,即h和s通道; # [0,180,0,256]:hsv色彩空间中 h和s的取值范围,是固定的 #1:是否缩放大小,1不需要,0需要 dst=cv.calcBackProject([target_hsv],[0,1],sample_hist,[0,180,0,256],1) #图四 cv.imshow("bp",dst)src=cv.imread('textImg.jpg')hist2d(src);backProjection()#等待用户操作cv.waitKey(0)#释放所有窗口cv.destroyAllWindows()注意:直方图反向投影须在hsv色彩空间下进行图一
图二
图三
图四
阅读全文
0 0
- Python3与OpenCV3.3 图像处理(十三)--反射投影
- Python3与OpenCV3.3 图像处理(五)--图像运算
- Python3与OpenCV3.3 图像处理(十一)--图像直方图
- Python3与OpenCV3.3 图像处理(十二)--图像直方图应用
- Python3与OpenCV3.3 图像处理(十五)--图像二值化
- Python3与OpenCV3.3 图像处理(十六)--图像金字塔
- Python3与OpenCV3.3 图像处理(十七)--图像梯度
- Python3与OpenCV3.3 图像处理(四)--色彩空间
- Python3与OpenCV3.3 图像处理(六)--ROI
- Python3与OpenCV3.3 图像处理(七)--洪填充
- Python3与OpenCV3.3 图像处理(八)--模糊
- Python3与OpenCV3.3 图像处理(十)--EPF
- Python3与OpenCV3.3 图像处理(十四)--模板匹配
- Python3与OpenCV3.3 图像处理(补)--第十五节补充
- Python3与OpenCV3.3 图像处理(十九)--直线检测
- Python3与OpenCV3.3 图像处理(二)--图像基本操作
- Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO
- Python3与OpenCV3.3 图像处理(三)--Numpy数组操作
- if-else优化问题
- Linux下安装MySQL 5.7.11版本数据库
- Softmax 回归 vs. k 个二元分类器
- Android jni开发-0(用javah方式编译jni)
- js_note
- Python3与OpenCV3.3 图像处理(十三)--反射投影
- How far away ?
- 数据结构与算法之Collection和Map综述
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
- MySQL数据库——检索数据(一)
- jQuery事件
- JavaEE 中JSTL EL的应用
- 扩展版扫雷小游戏
- 12.4-12.8课堂作业-临摹米家有品