用于Caffe的缩放OpenCV垫 我一直在跟踪并尝试C++中的训练模型的测试,在这里我用OpenCV来读取图像。在这个例子中,他们提到了他们如何为训练和测试图像
缩放传入像素,使其位于[0,1]范围内。为什么 0.00390625?它是1除以256用于Caffe的缩放OpenCV垫 我一直在跟踪并尝试C++中的训练模型的测试,在这里我用OpenCV来读取图像。在这个例子中,他们提到了他们如何为训练和测试图像,opencv,machine-learning,neural-network,deep-learning,caffe,Opencv,Machine Learning,Neural Network,Deep Learning,Caffe,缩放传入像素,使其位于[0,1]范围内。为什么 0.00390625?它是1除以256 我听说过Caffe中有一个DataTransformer类,可以用来缩放图像,但是如果我将OpenCV Mat对象中的每个像素乘以0.00390625,会得到相同的结果吗?这个想法是正确的。但是记住在缩放之前将OpenCV Mats转换为浮点或双精度类型 比如: cv::Mat mat; // assume this is one of your images (grayscale) /* convert
我听说过Caffe中有一个DataTransformer类,可以用来缩放图像,但是如果我将OpenCV Mat对象中的每个像素乘以0.00390625,会得到相同的结果吗?这个想法是正确的。但是记住在缩放之前将OpenCV Mats转换为浮点或双精度类型 比如:
cv::Mat mat; // assume this is one of your images (grayscale)
/* convert it to float */
mat.convertTo(mat, CV_32FC1); // use CV_32FC3 for color images
/* scaling here */
mat = mat * 0.00390625;
更新#1:转换和缩放也可以简单地在一行中完成,即
cv::Mat mat; // assume this is one of your images (grayscale)
/* convert and scale here */
mat.convertTo(mat, CV_32FC1, 0.00390625);
谢谢!关于转换的另一个好主意是避免任何截断!