为Caffe缩放OpenCV Mat

我一直在关注Caffe的MINST示例,并尝试使用C++部署训练模型的测试,其中我使用OpenCV来读取图像。在示例中,他们提到在训练和测试图像时,他们

将输入像素缩放到[0,1)范围内。为什么是0.00390625?这是1除以256的结果。

我听说Caffe中有一个DataTransformer类可以用来缩放图像,但如果我将OpenCV Mat对象中的每个像素乘以0.00390625,这样做会得到相同的结果吗?


回答:

这个想法是对的。但请记住在缩放之前将你的OpenCV Mat转换为float或double类型。

类似于这样:

cv::Mat mat; // 假设这是你的图像之一(灰度)/* 将其转换为float */mat.convertTo(mat, CV_32FC1); // 对彩色图像使用CV_32FC3/* 在这里缩放 */mat = mat * 0.00390625;

更新#1:转换和缩放也可以在一行内完成,即

cv::Mat mat; // 假设这是你的图像之一(灰度)/* 在这里转换和缩放 */mat.convertTo(mat, CV_32FC1, 0.00390625);

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注