首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python opencv】直方图反投影

直方图反投影与camshift算法等配合使用。 我们该怎么做呢?我们创建一个图像的直方图,其中包含我们感兴趣的对象(在我们的示例中是背景等)。对象应尽可能填充图像以获得更好的效果。...而且颜色直方图比灰度直方图更可取,因为对象的颜色对比灰度强度是定义对象的好方法。然后,我们将该直方图“反投影”到需要找到对象的测试图像上,换句话说,我们计算出属于背景的每个像素的概率并将其显示出来。...然后反向投影R,即使用R作为调色板,并以每个像素作为其对应的目标概率创建一个新图像。即B(x,y) = R[h(x,y),s(x,y)] 其中h是色调,s是像素在(x,y)的饱和度。...OpenCV的反投影 OpenCV提供了一个内建的函数cv.calcBackProject()。它的参数几乎与cv.calchist()函数相同。

87530
您找到你想要的搜索结果了吗?
是的
没有找到

投影矩阵推导_矩阵投影变换

概要 投影变换是计算机图形学的基础,理解并推导投影矩阵也是很有必要的。正交投影比较简单,没有透视失真效果(近大远小)。而透视投影比较符合人类的眼睛感知,平行线在远处会相交于一点。...投影是通过一个4×4的矩阵来完成的,将视锥映射成标准观察体(齐次裁剪空间)。...: 得到投影矩阵: 当然也可以用一个平移和缩放矩阵的级联矩阵,来达到一样的效果。...透视投影 OpenGL 设P(Px, Py, Pz, 1)是在视锥体内的一点,那么它在近平面z=-n上的投影点,利用相似三角形原则,可以得到: 类似于正交投影,将x,y轴坐标映射到[-1, 1]...区间内,得到: 然而和正交投影不同,z轴的坐标并不是线性的。

1.2K30

透视投影矩阵_透视投影矩阵推导知乎

透视投影矩阵 关于透视投影矩阵的使用 设置投影矩阵 glFrustum() 设置屏幕坐标 gluPerspective() 首先,重要的是要记住OpenGL中的矩阵是使用列主顺序(而不是行主顺序)定义的...在所有的OpenGL书籍和参考文献中,OpenGL中使用的透视投影矩阵定义为: 我们可以简单地转置矩阵,就能得到下面的以行向量为顺序的矩阵: 下面对透视投影矩阵的参数做一些说明: l,...r:立方体的左,右在X轴上的投影 b, t:立方体的下,上在X轴上的投影 n:近平面在Z轴上的投影 f:远平面在Z轴上的投影 关于OpenGL透视投影矩阵的推导,可参考链接link....设置投影矩阵 glFrustum() 在OpenGL中设置透视投影矩阵是通过调用glFrustum来完成的。...所以宽高比: Aspect = 2r/2t = r/t 则可进一步得知: r = Aspect * t l = -r 综上:只要定义视锥的宽高比和视角,即可得 l,r,b,t 参数用于定义正交投影的立方体

1.2K20

opencv(4.5.3)-python(二十六)--直方图反投影

翻译及二次校对:cvtutorials.com 目标 在本章中,我们将学习直方图反投影的知识。 理论 它是由Michael J. Swain和Dana H....直方图反投影是与camshift算法等一起使用的。 我们怎么做呢?我们创建一个包含我们感兴趣的对象(在我们的例子中,地面、离开的球员和其他东西)的图像的直方图。...彩色直方图比灰度直方图更受欢迎,因为物体的颜色比其灰度更能定义物体。然后,我们在需要寻找物体的测试图像上 "反推 "这个直方图,即换句话说,我们计算每个像素属于地面的概率并显示出来。...ret,thresh = cv.threshold(B,50,255,0) OpenCV中的反投影 OpenCV提供了一个内置的函数cv.calcBackproject()。

30020

透视投影变换矩阵推导_矩阵的投影

视域体,也就是包含所有你想显示的几何体的可视空间——是一个将被变换到规范视域体的轴对齐盒子,见图2: 图2: 正交投影 正如你看见的,视域体由6个面定义: 因为视域体和规范视域体都是轴对齐盒子...换句话说,你可以把r, l, t和b一起忘掉,简单的把视域体定义为1个宽度w和1个高度h,以及裁剪面f和n。...最后,还有个经常用的上的透视投影的表示。在这种表示中,你根据摄像机的可视范围定义视域体,而不用去担心视域体的尺寸。...此外,使用横纵比r代替宽度,r定义为显示区域的宽比高的横纵比。...所以,你真正需要担心的事情只是定义视域体沿着z轴的范围。 总结 这就是所有的你需要的投影变换背后的数学概念。

1.4K20

投影矩阵的计算_投影矩阵的几何意义

在进行迭代重建的过程中,我们首先需要求出投影矩阵之后才能进行其他后续的操作,在迭代重建中起到了基石的作用。...并且在前面的文章中《迭代重建算法中投影矩阵的计算》已经给出了一种方法,但是我发现在程序的运行过程中存在一些未知的bug,导致程序在计算某些角度的投影矩阵时出现错误。...(在这里面delta最好设置为1,表示一个像素的大小) function [W_ind,W_dat]=medfuncSystemMatrix1(theta,N,P_num,delta) %%==定义参数...%W_ind:存储射线穿过的网格的编号 %W_dat:存储射线被穿过网格所截断的长度 N2=N^2;%编号总数 theta=theta*pi/180; M=length(theta)*P_num;%投影射线总条数...meshgrid(x,y),y,'k'); % axis([-N/2-5,N/2+5,-N/2-5,N/2+5]); % text(0,-0.4*delta,'0'); % end %%==投影矩阵的计算

1.3K10

地图投影

地图投影分类 根据投影面和地球球面的位置关系 投影面和地轴的关系 正轴投影投影面的中心线与地轴一直) 斜轴投影投影面的中心线与地轴斜交) 横轴投影投影面的中心线与地轴垂直) 投影面和地球面的关系...切投影 (投影面和地球球面相切) 割投影 (投影面和地球球面相割) ?...根据正轴投影时经纬网的形状 圆锥投影投影中纬线为同心圆圆弧,经线为圆的半经) 圆柱投影投影中纬线为一组平行直线,经线为垂直于纬线的另一组平行直线,且两相邻经线之间的距离相等) 方位投影投影中纬线为同心圆...,经线为圆的半径,且经线间的夹角等于地球面上相应的经差) 此外,还有伪圆锥投影,伪圆柱投影,伪方位投影,多圆锥投影等 ?...根据投影的变形 等角投影 (地球表面无穷小图形投影后保持相似) 等面积投影 (地球表面图形在投影后面积保持不变) 任意投影 常用地图投影 我国基本比例尺地形图(1:100万,1:50万,1:25万,1:

1.4K10

投影矩阵介绍

下面就介绍下相平面投影的三种不同方法。...正交投影 正交投影可以理解是透视投影的一种极端情况,f趋近无穷大,f/Z趋近1,这时矩阵形式就写成: 展开为: 这里w为1. 可以看出,相平面上的点就是相机坐标系的点,简单粗暴,直接去掉了Z。...这种投影方式没法反应近大远小的特点,所以就有了下面稍微复杂点的正交投影:缩放正交投影。...缩放正交投影(弱透视模型) 由于正交投影简化过猛,直接丢弃了Z,这里为了体现缩放又把Z加回来了,只不过这里的Z是个常值,比如一个三维的点云,可以将分母设为点云Z的均值,这样就实现了投影的缩放(依然保留了平行直线的关系...x轴做了平移,如果使用弱透视投影投影的结果应该是右下角三张图,看起来人头都没旋转。。

1K10

投影矩阵详解

这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。...在视锥中,摄像机与空间原点间的距离被定义为变量   视矩阵将摄像机放置在场景的原点。...在透视变换中,   这个矩阵基于一定的距离(这个距离是从摄像机到邻近的剪切面)对对象进行平移和旋转,但是它没有考虑到视野(   在这个矩阵中,   在程序中,使用视野角度来定义 x和y缩放系数比使用视口的水平和垂直尺寸...开始定义透视投影的矩阵时,可以象下面左图这样来使用变量D: fov-field of view)和前后剪切面的位置来进行定义:   视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。...这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。

1.4K30

Angular 内容投影

答案是可以的,在 Angular 中引入了内容投影的概念,即通过使用 指令来实现内容投影的功能。 ?...首先我们来定义 AuthFormComponent 组件: import { Component, Output, EventEmitter } from "@angular/core"; import...虽然我们实现了内容投影,即把标题和按钮都成功投影到 AuthFormComponent 组件中,但你会发现按钮的位置并不是预期的。那么如何解决这个问题呢?...以上示例我们使用元素选择器,来实现选择性内容投影,最后的运行结果如下: ? 组件投影 ng-content 指令除了支持标准的 HTML 标签外,还支持自定义指令。...ngProjectAs 有时候我们的定义的组件可能会包含在其它容器中,比如 ,这时我们的目标投影会发生什么: <auth-remember

2.6K20

OpenGL投影矩阵

这是关于OpenGL投影矩阵的一篇译文,原文在这里....这里需要注意的是,观察空间是在右手坐标系下(OpenGL 使用右手坐标系)定义的,但是 NDC 却是在左手坐标系下定义的.换句话说就是,观察空间中的摄像机是指向 -Z 轴的,但是在 NDC 中,摄像机指向的却是...在 OpenGL 中,观察空间中3D坐标点是投影到近裁剪面(即投影面)上的.下面的示意图展示了一个在观察空间中的坐标点 (xe,ye,ze)(x_e, y_e, z_e)(xe​,ye​,ze​),是如何投影到近裁剪面坐标点...上面的投影矩阵对应于一般的视锥体投影,如果视锥体是上下左右对称的话(即 r=−l,t=−br = -l, t = -br=−l,t=−b),则上面的投影矩阵可以做如下简化: ?...正交投影 为正交投影构建一个 GL_PROJECTION 矩阵比上面说的透视投影要简单多了. ?

1.7K00

python在地球投影中轻松添加图形标注

前言 交流群里有读友提问:如何在地球投影中添加指定的纬圈。我抽空尝试了一下,分享给大家。...当无地图投影时 在 python 的 matplotlib.pyplot 和 matplotlib.patches中,有很多内置的函数可以帮助我们绘制矩形、圆形、椭圆等图案。...此外,还可以接收地图投影transform参数。...当存在地图投影时 前面提到过,matplotlib.patches.xxxx 方法可以接收 transform 地图投影参数,但在实际使用时发现该参数在极地投影的情况下,不能实现想要的效果,建议使用gridlines...1、非极地投影 以lat-lon投影为例,令纬度0°、经度0°为圆心,15°为半径,绘制圆形: code import matplotlib.pyplot as plt from cartopy import

53220
领券