最近用优先队列写了一个SNIC超像素分割的工程,有兴趣的可以下载看看。(VIP大佬让我赚一点下载积分吧,感激不尽)
https://download.csdn.net/download/koffee_f/10767813
之前觉得速度很慢,原来是因为一个cout没有删掉。删掉之后在release下跑很快。
优先级队列
队列就是一个先进先出(FIFO)的结构,而优先级队列则是对队列里的每一个元素设置一个优先级,取元素时先获得优先级最高的一个元素。在python和c++里都有库可以调用。(java里应该也有,但是我不会java,所以算了吧。)
今天看了SNIC超像素分割的一个程序,“每次取距离中心最近的点”这个操作,想想就很麻烦。研究发现把距离设置成优先级,然后用一个队列就解决了。对基于SDF网格的三维重建,可能也会碰到类似的需要对网格排序的情况。库帮忙自动维护这些数据,实在是太方便了。
具体的逻辑这个博客讲的非常好,有空再研究。
https://blog.csdn.net/qq_35326718/article/details/72866180
先简单记录一下怎么用
python
直接用SNIC里面的例子吧
from Queue import PriorityQueue
Q=PriorityQueue()
Q=putinQ(ck,Q,numk) #初始化Q
class NODE(object):
def __init__(self,priority,description1,description2,description3):
distance=int()
xk=int()
yk=int()
k=int