将cv :: Mat设置为其最大可能值

时间:2014-05-08 19:08:36

标签: c++ opencv

我通过C ++接口使用opencv。我知道我可以使用cv::Mat::operator=(const Scalar& s)cv::Mat::setTo()cv::Mat设置为特定值。但是,如何将cv::Mat作为参数传递给我的函数到其最大可能值?

1 个答案:

答案 0 :(得分:4)

首先,它取决于矩阵的类型,8UC1是8位无符号字符,最大值是255.如果我正确调用,32SC1的最大值是最大整数值,最大64FC1是最大双倍值。

通常我会做这样的事情。

/* Test with small matrix */
cv::Mat matrix_1( 2, 2, CV_32FC3, Scalar::all( std::numeric_limits<float>::max() ) );

/* Subsequent assigment is something like this */
matrix_1 = Scalar::all( std::numeric_limits<float>::max() );

cout << matrix_1 << endl;

/* Test with integer matrix */
cv::Mat matrix_2( 2, 2, CV_32SC2, Scalar::all( std::numeric_limits<int>::max() ) );

/* Subsequent assigment is something like this */
matrix_2 = Scalar::all( std::numeric_limits<int>::max() );

cout << matrix_2 << endl;

如果它是8UC类型,那么只需使用255,如果是64FC类型,则使用double类型。

相关问题