Beispiel #1
0
cv::Mat LBSP::padMat(const cv::Mat& input, int padding)
{
	cv::Mat padded_input;
	padded_input.create(input.rows + 2 * padding, input.cols + 2 * padding, input.type());
	padded_input.setTo(cv::Scalar::all(0));
	input.copyTo(padded_input(cv::Rect(padding, padding, input.cols, input.rows)));
	return padded_input;
}
Beispiel #2
0
void LBSP::displayPatchXY(cv::Mat in, int upper_leftX, int upper_leftY, int patchSize, bool disp)
{
	cv::Mat padded_input = padMat(in);
	std::cout << padded_input(cv::Rect(upper_leftX, upper_leftY, patchSize, patchSize)) << std::endl;
	if (disp)
	{
		cv::namedWindow("patch", CV_WINDOW_AUTOSIZE);
		cv::imshow("patch", in(cv::Rect(upper_leftX, upper_leftY, patchSize, patchSize)));
	}
}
Beispiel #3
0
        void HashFunction::sha3_hash(const uint64_t *input, int uint64_count, sha3_block_type &sha3_block)
        {
#ifdef SEAL_DEBUG
            if (input == nullptr)
            {
                throw invalid_argument("input cannot be null");
            }
            if (uint64_count < 0)
            {
                throw invalid_argument("uint64_count cannot be negative");
            }
#endif
            // Padding
            int padded_uint64_count = sha3_rate_uint64_count * ((uint64_count / sha3_rate_uint64_count) + 1);
            Pointer padded_input(global_variables::global_memory_pool->get_for_uint64_count(padded_uint64_count));
            memcpy(padded_input.get(), input, uint64_count * bytes_per_uint64);
            for (int i = uint64_count; i < padded_uint64_count; i++)
            {
                padded_input[i] = 0;
                if (i == uint64_count)
                {
                    padded_input[i] |= 0x6ULL;
                }
                if (i == padded_uint64_count - 1)
                {
                    padded_input[i] |= 0x1ULL << 63;
                }
            }

            // Absorb
            sha3_state_type state;
            memset(state, 0, sha3_state_uint64_count * bytes_per_uint64);
            for (int i = 0; i < padded_uint64_count; i += sha3_rate_uint64_count)
            {
                sponge_absorb(padded_input.get() + i, state);
            }

            sha3_block = sha3_zero_block;
            sponge_squeeze(state, sha3_block);
        }