【问题标题】:Scaling OpenCV Mat for Caffe为 Caffe 缩放 OpenCV Mat
【发布时间】:2015-11-19 21:41:02
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这个想法是对的。但请记住在缩放之前将您的 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);
    

    【讨论】:

    • 谢谢!避免任何截断的转换也是个好主意!
    猜你喜欢
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2023-03-18
    • 1970-01-01
    • 2014-01-07
    • 2016-05-08
    相关资源
    最近更新 更多