38 const Eigen::Vector2d& center,
double radius,
double value = 1.0) {
41 Eigen::Vector2d point;
43 const double x =
static_cast<double>(j) /
static_cast<double>(cols - 1);
47 static_cast<double>(i) /
static_cast<double>(rows - 1);
49 const double dist = (point - center).norm();
66 const Eigen::Vector2d& center,
double radius,
double center_value = 1.0) {
69 Eigen::Vector2d point;
71 const double x =
static_cast<double>(j) /
static_cast<double>(cols - 1);
75 static_cast<double>(i) /
static_cast<double>(rows - 1);
77 const double dist = (point - center).norm();
78 const double dist_ratio = dist / radius;
79 image(i, j) = std::max(
80 image(i, j), center_value * (1.0 - dist_ratio * dist_ratio));
97 const Eigen::Vector2d& center,
double radius,
double center_value = 1.0) {
102 const double scaling_factor = center_value / rbf(0.0);
104 Eigen::Vector2d point;
106 const double x =
static_cast<double>(j) /
static_cast<double>(cols - 1);
110 static_cast<double>(i) /
static_cast<double>(rows - 1);
112 const double dist = (point - center).norm();
113 const double dist_ratio = dist / radius;
115 std::max(image(i, j), scaling_factor * rbf(dist_ratio));
130 const Eigen::Vector2d center = Eigen::Vector2d(0.7, 0.6);
131 constexpr double radius = 0.2;
132 image = Eigen::MatrixXd::Zero(rows, cols);
146 const Eigen::Vector2d center1 = Eigen::Vector2d(0.3, 0.4);
147 constexpr double radius1 = 0.1;
148 constexpr double value1 = 0.5;
150 const Eigen::Vector2d center2 = Eigen::Vector2d(0.7, 0.6);
151 constexpr double radius2 = 0.2;
152 constexpr double value2 = 1.0;
154 image = Eigen::MatrixXd::Zero(rows, cols);
169 const Eigen::Vector2d center = Eigen::Vector2d(0.7, 0.6);
170 constexpr double radius = 0.2;
171 constexpr double center_value = 1.0;
173 image = Eigen::MatrixXd::Zero(rows, cols);
187 const Eigen::Vector2d center = Eigen::Vector2d(0.7, 0.6);
188 constexpr double radius = 0.3;
189 constexpr double center_value = 1.0;
191 image = Eigen::MatrixXd::Zero(rows, cols);
Class of Wendland's Compactly Supported RBF wendland1995.
Definition of index_type type.
std::ptrdiff_t index_type
Type of indices in this library.
Namespace of regularization.
void add_constant_circle(Eigen::MatrixXd &image, const Eigen::Vector2d ¢er, double radius, double value=1.0)
Add a circle with constant value to an image.
void generate_sparse_sample_image_with_one_smooth_circle(Eigen::MatrixXd &image, num_collect::index_type rows, num_collect::index_type cols)
Generate a sparse sample image with one smooth circle.
void add_smooth_circle(Eigen::MatrixXd &image, const Eigen::Vector2d ¢er, double radius, double center_value=1.0)
Add a circle with values given by a smooth function to an image.
void generate_sparse_sample_image_with_one_quadratic_circle(Eigen::MatrixXd &image, num_collect::index_type rows, num_collect::index_type cols)
Generate a sparse sample image with one quadratic circle.
void generate_sparse_sample_image_with_two_constant_circles(Eigen::MatrixXd &image, num_collect::index_type rows, num_collect::index_type cols)
Generate a sparse sample image with two constant circles.
void generate_sparse_sample_image_with_one_constant_circle(Eigen::MatrixXd &image, num_collect::index_type rows, num_collect::index_type cols)
Generate a sparse sample image with one constant circle.
void add_quadratic_circle(Eigen::MatrixXd &image, const Eigen::Vector2d ¢er, double radius, double center_value=1.0)
Add a circle with values given by a quadratic function to an image.
Definition of wendland_csrbf class.