c++ - 使用 C++ 在 OpenCV 中使用我的自定义最大值和自定义最小值对 0 和 1 之间的矩阵进行归一化

标签 c++ opencv matrix normalization

我想使用 C++ 在 OpenCV 中使用自定义最大值和自定义最小值对介于 0 和 1 之间的矩阵进行归一化。这是我的代码:

#include <iostream>
#include <opencv2/core/core.hpp>

int main()
{
    cv::Mat src(cv::Size(2, 2), CV_32FC1, cv::Scalar::all(0));
    cv::Mat dst;

    src.at<float>(0,0) = -3;
    src.at<float>(1,1) = 3;

    std::cout << "src: " << src << '\n';

    cv::normalize(src, dst, 0, 1, cv::NORM_MINMAX, CV_32FC1); // Not I would like!

    // I'd like to normalize between 0 and 1 but my minimum is -10 and my maximum
    // is 10 and not between [-3, 3]!

    std::cout << "dst: " << dst << '\n';
}

最佳答案

#include <iostream>
#include <opencv2/core/core.hpp>

int main()
{
    double min = -10;
    double max = 10;

    cv::Mat src(cv::Size(2, 2), CV_32FC1, cv::Scalar::all(0));
    cv::Mat dst;

    src.at<float>(0,0) = -3;
    src.at<float>(1,1) = 3;

    std::cout << "src: " << src << '\n';

    dst = (src - min) / (max - min);

    std::cout << "dst: " << dst << '\n';

    return 0;
}

关于c++ - 使用 C++ 在 OpenCV 中使用我的自定义最大值和自定义最小值对 0 和 1 之间的矩阵进行归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335166/

相关文章:

c++ - SFINAE 类型集包含的类型

java - 如何在 OpenGL 中围绕 Z 轴中心旋转对象?

通过未知类型的 Mat 进行 OpenCV 索引

c++ - 可变参数,它们都是模板类型的特化

c++ - 递归函数引起的栈溢出

c++ - 从 Const 引用接口(interface)向上转换到派生类

python - 将图像另存为numpy数组

objective-c - objective-c 方法中的IplImage *

python - 如何在图像openCV python中找到所有颜色形状

python - 如何在 Python 中并行化列表元素