小编moj*_*iiz的帖子

如何随机选择最大化占用空间的样本点?

我想生成可以随机填充/覆盖空间的样本点(如附图中所示).我认为他们有一种称为"准随机"的方法,可以生成这样的采样点.但是,这离我的知识有点远.有人可以提出建议或帮我找到可以这样做的图书馆吗?或者建议如何开始编写这样的程序?

采样点覆盖空间

在图像中,256个采样点应用于给定空间,放置在随机位置以覆盖整个给定空间.

更新:我只是尝试使用Halton准随机序列中的一些代码,并与下面的朋友发布的伪随机结果进行比较.在我看来,Halton方法的结果更好.我想分享一些结果如下;

伪随机和Halton序列

我写的代码是

#include "halton.hpp"
#include "opencv2/opencv.hpp"
int main()
{
    int m_dim_num = 2;
    int m_n = 50;
    int m_seed[2], m_leap[2], m_base[2];
    double m_r[100];
    for (int i = 0; i < m_dim_num; i++)
    {
        m_seed[i] = 0;
        m_leap[i] = 1;
        m_base[i] = 2+i;
    }

    cv::Mat out(100, 100, CV_8UC1);
    i4_to_halton_sequence( m_dim_num, m_n, 0, m_seed, m_leap, m_base, m_r);

    int displaced = 100;
    for (int i = 0; i < 100; i=i+2)
    {
        cv::circle(out, cv::Point2d((m_r[i])*displaced, (m_r[i+1])*displaced), 1, cv::Scalar(0, 255, 0), …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

7
推荐指数
1
解决办法
3451
查看次数

标签 统计

algorithm ×1

c++ ×1