Пример #1
0
void blur_c    (
    unsigned char *src,
    unsigned char *dst,
    int cols,
    int filas,
    float sigma,
    int radius)
{
    float *k_m = kernel_matrix(sigma, radius);

    int rows_starts_at = radius, rows_ends_at = filas - radius;
    int cols_starts_at = radius * 4, cols_ends_at = cols * 4 - radius * 4;

    int i, j, index, col_size = cols * 4;

    for(i = rows_starts_at; i < rows_ends_at; i++){
        for(j = cols_starts_at; j < cols_ends_at; j++){
            index = i * (cols * 4) + j;
            if(index % 4 == 3){
                dst[index] = 255;
            }else{
                dst[index] = calculate_convultion(src, radius, k_m, i, j, col_size);
            }
        }
    }

    free(k_m);
}
Пример #2
0
DenseSymmetricMatrix compute_centered_kernel_matrix(RandomAccessIterator begin, RandomAccessIterator end, 
                                                    KernelCallback callback)
{
	timed_context context("Constructing kPCA centered kernel matrix");

	DenseSymmetricMatrix kernel_matrix(end-begin,end-begin);

	for (RandomAccessIterator i_iter=begin; i_iter!=end; ++i_iter)
	{
		for (RandomAccessIterator j_iter=i_iter; j_iter!=end; ++j_iter)
		{
			DefaultScalarType k = callback(*i_iter,*j_iter);
			kernel_matrix(i_iter-begin,j_iter-begin) = k;
			kernel_matrix(j_iter-begin,i_iter-begin) = k;
		}
	}

	centerMatrix(kernel_matrix);

	return kernel_matrix;
};
Пример #3
0
	inline tapkee::ScalarType operator()(int a, int b) const
	{
		return kernel_matrix(a,b);
	}