python中round函数的用法round函数pythonpythonroi函数:
这个函数相当于调去里面的一个函数pythonroi函数 , 有一个数组,从中里面调取一个数据 。简单的说,round是使用四舍五入对小数进行位数控制的函数,round(a , b) , a参数是小数 , b是小数点后保留的位数 。实际使用需要考虑的python2和python3版本的差异与小数精度的问题 。
ound函数的使用用法
根据Excel的帮助得知,round函数就是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果 。
round函数的语法是pythonroi函数:ROUND(number,num_digits),即:Round(数值 , 保留的小数位数)
Number:需要进行四舍五入的数字 。
Num_digits:指定的位数,按此位数进行四舍五入 。
其中,如果num_digits大于0,则四舍五入到指定的小数位 。
如果num_digits等于0,则四舍五入到最接近的整数 。
如果num_digits小于0,则在小数点左侧进行四舍五入 。
Python中repr()函数和str()的区别repr()和str,一个最简单的区别:repr是函数,str跟int一样是一种对象类型 。
repr(object)
返回对象的可打印形式字符串 。对于很多类型而言 , 本函数试图返回的字符串,会与将对象传给 eval() 所生成的结果相同;不然,结果就是一个尖括号包裹的字符串,包含了对象类型名称及其附加信息,附加信息通常包括对象的名称和内存地址 。通过定义 __repr__() 方法,类可以控制本函数将为实例返回的内容 。
classstr(object='')classstr(object=b'',encoding='utf-8',errors='strict')
返回object的 字符串 版本 。如果未提供object则返回空字符串 。在其他情况下 str() 的行为取决于encoding或errors是否有给出,具体见下 。
如果encoding或errors均未给出 , str(object) 返回 object.__str__(),这是object的“非正式”或格式良好的字符串表示 。对于字符串对象,这是该字符串本身 。如果object没有 __str__() 方法,则 str() 将回退为返回 repr(object) 。
如果encoding或errors至少给出其中之一,则object应该是一个 bytes-like object (例如 bytes 或 bytearray) 。在此情况下,如果object是一个 bytes (或 bytearray) 对象,则 str(bytes, encoding, errors) 等价于 bytes.decode(encoding, errors) 。否则的话,会在调用 bytes.decode() 之前获取缓冲区对象下层的 bytes 对象 。请参阅 二进制序列类型 --- bytes, bytearray, memoryview 与 缓冲协议 了解有关缓冲区对象的信息 。
将一个 bytes 对象传入 str() 而不给出encoding或errors参数的操作属于第一种情况,将返回非正式的字符串表示(另请参阅 Python 的 -b 命令行选项) 。例如:
什么时候应该使用str(),什么时候应该使用repr()?
在为最终用户创建输出时,几乎总是使用str 。repr()主要用于调试和 探索。例如,如果您怀疑字符串中有非打印字符,或者浮点数有一个小的舍入错误,则repr()将显示给您;str可能不会 。repr()在生成要粘贴到源代码中的文字时也很有用 。
目标跟踪(3)MultiTracker : 基于 OpenCV (C/Python) 的多目标跟踪 在这篇文章中 , 我们将介绍如何使用通过 MultiTracker 类实现的 OpenCV 的多对象跟踪 API 。我们将共享C和 Python 代码 。
大多数计算机视觉和机器学习的初学者都学习对象检测 。如果您是初学者,您可能会想为什么我们需要对象跟踪 。我们不能只检测每一帧中的对象吗?
让我们来探究一下跟踪是有用的几个原因 。
首先,当在视频帧中检测到多个对象(例如人)时,跟踪有助于跨帧建立对象的身份 。
其次 , 在某些情况下,对象检测可能会失败,但仍可能跟踪对象 , 因为跟踪考虑了对象在前一帧中的位置和外观 。
第三,一些跟踪算法非常快,因为它们做的是局部搜索,而不是全局搜索 。因此 , 我们可以通过每n帧进行目标检测,并在中间帧中跟踪目标,从而为我们的系统获得很高的帧率 。
那么,为什么不在第一次检测后无限期地跟踪对象呢?跟踪算法有时可能会丢失它正在跟踪的对象 。例如,当对象的运动太大时 , 跟踪算法可能跟不上 。许多现实世界的应用程序同时使用检测和跟踪 。
在本教程中,我们只关注跟踪部分 。我们想要跟踪的对象将通过拖动它们周围的包围框来指定 。
OpenCV 中的 MultiTracker 类提供了多目标跟踪的实现 。它是一个简单的实现,因为它独立处理跟踪对象 , 而不对跟踪对象进行任何优化 。
让我们逐步查看代码,了解如何使用 OpenCV 的多目标跟踪 API 。
2.1 第 1 步:创建单一对象跟踪器
多目标跟踪器只是单目标跟踪器的集合 。我们首先定义一个函数,该函数接受一个跟踪器类型作为输入,并创建一个跟踪器对象 。OpenCV有8种不同的跟踪器类型:BOOSTING, MIL, KCF,TLD, MEDIANFLOW, GOTURN, MOSSE, CSRT 。
如果您想使用 GOTURN 跟踪器,请务必阅读这篇文章并下载 caffe 模型 。
在下面的代码中 , 给定跟踪器类的名称,我们返回跟踪器对象 。这将在稍后用于多目标跟踪器 。
Python
C
2.2 第 2 步:读取视频的第一帧
多目标跟踪器需要两个输入
给定这些信息 , 跟踪器在所有后续帧中跟踪这些指定对象的位置 。在下面的代码中 , 我们首先使用 VideoCapture 类加载视频并读取第一帧 。这将在稍后用于初始化 MultiTracker 。
Python
C
2.3 第 3 步:在第一帧中定位对象
接下来,我们需要在第一帧中定位我们想要跟踪的对象 。该位置只是一个边界框 。OpenCV 提供了一个名为 selectROI 的函数 , 该函数会弹出一个 GUI 来选择边界框(也称为感兴趣区域 (ROI)) 。在 C版本中,selectROI 允许您获取多个边界框,但在 Python 版本中 , 它只返回一个边界框 。所以,在 Python 版本中,我们需要一个循环来获取多个边界框 。对于每个对象,我们还选择一种随机颜色来显示边界框 。代码如下所示 。
Python
C
getRandomColors 函数相当简单
2.4 第 3 步:初始化 MultiTracker
到目前为止,我们已经读取了第一帧并获得了对象周围的边界框 。这就是我们初始化多目标跟踪器所需的所有信息 。
我们首先创建一个 MultiTracker 对象,并向其中添加与边界框一样多的单个对象跟踪器 。在此示例中 , 我们使用 CSRT 单对象跟踪器,但您可以通过将下面的 trackerType 变量更改为本文开头提到的 8 个跟踪器之一来尝试其他跟踪器类型 。CSRT 跟踪器不是最快的,但在我们尝试的许多情况下它产生了最好的结果 。
您还可以使用包裹在同一个 MultiTracker 中的不同跟踪器,但当然,这没什么意义 。
MultiTracker 类只是这些单个对象跟踪器的包装器 。正如我们从上一篇文章中知道的那样 , 单个对象跟踪器是使用第一帧初始化的,并且边界框指示我们想要跟踪的对象的位置 。MultiTracker 将此信息传递给它在内部包装的单个对象跟踪器 。
Python
C
2.5 第 4 步:更新 MultiTracker 并显示结果
最后 , 我们的 MultiTracker 已准备就绪 , 我们可以在新帧中跟踪多个对象 。我们使用 MultiTracker 类的 update 方法来定位新框架中的对象 。每个跟踪对象的每个边界框都使用不同的颜色绘制 。
Python
C
C
Python
【pythonroi函数 python roi】关于pythonroi函数和python roi的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- mysql按2个字段排序,mysql两个排序
- 铁拳游戏下载,铁拳游戏最新版
- 怎么看电脑显卡频率,怎么查看显卡频率
- c语言中库函数都有那些 c语言中库函数是什么
- 如何能成为新媒体记者,如何才能做好新媒体记者
- 如何配置.net开发环境变量,如何配置net开发环境变量文件
- 直播带货服务功能是什么,网络直播带货服务
- 求c语言平均值函数代码 c语言求平均值
- GIS断路器的作用,gis断路器开关特性试验接线