C++ 中的草火算法
Posted
技术标签:
【中文标题】C++ 中的草火算法【英文标题】:Grassfire algorithm in C++ 【发布时间】:2010-11-18 12:51:34 【问题描述】:有人知道如何在 C++ 中执行 Grassfire 吗?
我正在使用 OpenCV 库
【问题讨论】:
【参考方案1】:距离变换有什么区别?有一个函数叫cv::distanceTransform,或许能帮到你。
【讨论】:
【参考方案2】:this 链接中的伪代码呢?
是这样的:
for each row in image left to right
for each column in image top to bottom
if(pixel is in region)
set pixel to 1 + minimum value of the north east neighbours
else
set pixel to zero
for each row right to left
for each column bottom to top
if(pixel is in region)
set pixel to min(value of the pixel,1 + minimum value of the south west neighbours)
else
set pixel to zero
【讨论】:
【参考方案3】:所以这是我目前用于 BLOB 提取的草火的修改版本。它需要一个数字化的(图像已被修改,使得所有值都是 1 或 0)并返回一个由最大的边界框组成的向量。该代码相当长,但它位于 src/cvLib.cpp 文件中https://github.com/bstadt/JHU-Robotics-compVis 的公共存储库中。另请注意,边界框是我自己编写的一个类,因此您也需要它。它的源代码在 src 文件夹中,头文件在 include 目录中,所以一定要抓住这两个。
【讨论】:
以上是关于C++ 中的草火算法的主要内容,如果未能解决你的问题,请参考以下文章
C++ 舍入算法中的 0.501,C++ 中的 Excel ROUND