JWS C Library
C language utility library
|
Definitions for matrix block filters. More...
#include <jwsc/config.h>
#include <stdlib.h>
#include <inttypes.h>
#include <math.h>
#include <assert.h>
#include "jwsc/base/error.h"
#include "jwsc/prob/pdf.h"
#include "jwsc/matblock/matblock.h"
#include "jwsc/matblock/matblock_math.h"
#include "jwsc/filter/3d.h"
Go to the source code of this file.
Defines | |
#define | PI 3.14159265358979323846 |
Estimate of pi. | |
Functions | |
create_auto_3d_gaussian_filter | |
Creates a 3D Gaussian filter automatically sized. | |
Error * | create_auto_3d_gaussian_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma) |
Creates a single precision 3D Gaussian filter automatically sized. | |
Error * | create_auto_3d_gaussian_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma) |
Creates a double precision 3D Gaussian filter automatically sized. | |
create_3d_gaussian_filter | |
Creates a 3D Gaussian filter. | |
Error * | create_3d_gaussian_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a single precision 3D Gaussian filter. | |
Error * | create_3d_gaussian_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a double precision 3D Gaussian filter. | |
create_auto_3d_gaussian_dx_filter | |
Creates a 3D Gaussian filter with a partial derivative along columns automatically sized. | |
Error * | create_auto_3d_gaussian_dx_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma) |
Creates a single precision 3D Gaussian filter with a partial derivative in the x-direction (column) automatically sized. | |
Error * | create_auto_3d_gaussian_dx_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma) |
Creates a double precision 3D Gaussian filter with a partial derivative in the x-direction (column) automatically sized. | |
create_3d_gaussian_dx_filter | |
Creates a 3D Gaussian filter with a partial derivative along columns. | |
Error * | create_3d_gaussian_dx_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a single precision 3D Gaussian filter with a partial derivative in the x-direction (column). | |
Error * | create_3d_gaussian_dx_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a double precision 3D Gaussian filter with a partial derivative in the x-direction (column). | |
create_auto_3d_gaussian_dy_filter | |
Creates a 3D Gaussian filter with a partial derivative along rows automatically sized. | |
Error * | create_auto_3d_gaussian_dy_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma) |
Creates a single precision 3D Gaussian filter with a partial derivative in the y-direction (row) automatically sized. | |
Error * | create_auto_3d_gaussian_dy_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y-direction (row) automatically sized. | |
create_3d_gaussian_dy_filter | |
Creates a 3D Gaussian filter with a partial derivative along rows. | |
Error * | create_3d_gaussian_dy_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a single precision 3D Gaussian filter with a partial derivative in the y direction (row). | |
Error * | create_3d_gaussian_dy_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y direction (row). | |
create_auto_3d_gaussian_dz_filter | |
Creates a 3D Gaussian filter with a partial derivative along matrices automatically sized. | |
Error * | create_auto_3d_gaussian_dz_filter_f (Matblock_f **h_out, float mat_sigma, float row_sigma, float col_sigma) |
Creates a single precision 3D Gaussian filter with a partial derivative in the z-direction (matrix) automatically sized. | |
Error * | create_auto_3d_gaussian_dz_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y-direction (matrix) automatically sized. | |
create_3d_gaussian_dz_filter | |
Creates a 3D Gaussian filter with a partial derivative along matrices. | |
Error * | create_3d_gaussian_dz_filter_f (Matblock_f **h_out, double mat_sigma, double row_sigma, double col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a single precision 3D Gaussian filter with a partial derivative in the z direction (matrix). | |
Error * | create_3d_gaussian_dz_filter_d (Matblock_d **h_out, double mat_sigma, double row_sigma, double col_sigma, uint32_t num_mats, uint32_t num_rows, uint32_t num_cols) |
Creates a double precision 3D Gaussian filter with a partial derivative in the z direction (matrix). |
Definitions for matrix block filters.
Definition in file 3d.c.
Error* create_auto_3d_gaussian_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma | ||
) |
Creates a single precision 3D Gaussian filter automatically sized.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_auto_3d_gaussian_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma | ||
) |
Creates a double precision 3D Gaussian filter automatically sized.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_3d_gaussian_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a single precision 3D Gaussian filter.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_3d_gaussian_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a double precision 3D Gaussian filter.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_auto_3d_gaussian_dx_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the x-direction (column) automatically sized.
The x direction is across matrix block columns.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_auto_3d_gaussian_dx_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the x-direction (column) automatically sized.
The x direction is across matrix block columns.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_3d_gaussian_dx_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the x-direction (column).
The x direction is across matrix block columns.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_3d_gaussian_dx_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the x-direction (column).
The x direction is across matrix block columns.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_auto_3d_gaussian_dy_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the y-direction (row) automatically sized.
The y direction is across matrix block rows.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_auto_3d_gaussian_dy_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y-direction (row) automatically sized.
The y direction is across matrix block rows.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_3d_gaussian_dy_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the y direction (row).
The y direction is across matrix block rows.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_3d_gaussian_dy_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y direction (row).
The y direction is across matrix block rows.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_auto_3d_gaussian_dz_filter_f | ( | Matblock_f ** | h_out, |
float | mat_sigma, | ||
float | row_sigma, | ||
float | col_sigma | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the z-direction (matrix) automatically sized.
The y direction is across matrices.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_auto_3d_gaussian_dz_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the y-direction (matrix) automatically sized.
The z direction is across matrices.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
Error* create_3d_gaussian_dz_filter_f | ( | Matblock_f ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a single precision 3D Gaussian filter with a partial derivative in the z direction (matrix).
The z direction is across matrices.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |
Error* create_3d_gaussian_dz_filter_d | ( | Matblock_d ** | h_out, |
double | mat_sigma, | ||
double | row_sigma, | ||
double | col_sigma, | ||
uint32_t | num_mats, | ||
uint32_t | num_rows, | ||
uint32_t | num_cols | ||
) |
Creates a double precision 3D Gaussian filter with a partial derivative in the z direction (matrix).
The z direction is across matrices.
h_out | Result parameter. If *h_out is NULL, a matrix block is allocated; otherwise its space is re-used. |
mat_sigma | Sigma to the Gaussian along matrices. |
row_sigma | Sigma to the Gaussian along rows. |
col_sigma | Sigma to the Gaussian along columns. |
num_mats | Number of matrices. |
num_rows | Number of rows. |
num_cols | Number of columns. |