为Caffe扩展OpenCV Mat

时间:2015-08-26 01:33:30

标签: opencv machine-learning neural-network deep-learning caffe

我一直关注Caffe MINST example并尝试使用C ++部署受过训练的模型的测试,我使用OpenCV来读取图像。在这个例子中,他们提到了如何训练和测试图像

  

缩放传入的像素,使它们在[0,1]范围内。为什么   0.00390625?它是1除以256。

我已经听说过Caffe中的DataTransformer类如何用于缩放图像,但是如果我将OpenCV Mat对象中的每个像素乘以0.00390625会产生相同的结果吗?

1 个答案:

答案 0 :(得分:3)

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

类似的东西:

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);