在OpenCV与c++中,用我的自定义最大值和自定义最小值规范化0到1之间的矩阵
Normalize a matrix between 0 and 1 with my custom max and my custom min in OpenCV with C++
我想用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;
}
你可以这样做(使用lambda函数):
dst = src.clone();
std::for_each(dst.begin<float>(), dst.end<float>()
, [](float& ele) { ele = (10+ele)/20; });
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- std::ranges::elements_view,用于自定义类似元组的数据
- 跟随整数索引列表的自定义类迭代器
- 参数化自定义CMake工具链
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 如何在自定义类中启用'auto loops'?
- 使用QJsEngine在Qt中注册自定义类型
- Qt自定义QPush按钮未显示在布局上
- 自定义对象的dlib序列化在gcc中失败
- 自定义创建QFuture
- 在OpenCV与c++中,用我的自定义最大值和自定义最小值规范化0到1之间的矩阵