Opencv ConvertTo在转换为浮点后更改值

Opencv ConvertTo在转换为浮点后更改值,opencv,Opencv,我使用convertTo函数将矩阵从int转换为float: Mat lbp_image_d; lbp_image.convertTo(lbp_image_d,CV_32F); 但是,当我转换矩阵时,值会发生变化。他们有什么理由改变吗?我错过了什么 提前谢谢 编辑:我看到使用调试器更改了值。我在VS2012中使用opencv 2.4.5 例如,转换前的前5个值(lbp_image.data)为[52,0,0,0,58],转换后为[0,0,80,66,0] 谢谢 我的错。正如be

我使用convertTo函数将矩阵从int转换为float:

    Mat lbp_image_d;
    lbp_image.convertTo(lbp_image_d,CV_32F);
但是,当我转换矩阵时,值会发生变化。他们有什么理由改变吗?我错过了什么

提前谢谢

编辑:我看到使用调试器更改了值。我在VS2012中使用opencv 2.4.5

例如,转换前的前5个值(lbp_image.data)为[52,0,0,0,58],转换后为[0,0,80,66,0]


谢谢

我的错。正如berak指出的,我需要使用以下命令将数据指针投射到“watch”窗口中:

(float*)(mat.data), 5

您如何看待这些值的变化?从什么到什么?谢谢你的评论。我看到这些值在使用调试器时发生了变化。我在VS2012中使用opencv 2.4.5。例如,转换前的前5个值(lbp_image.data)为[52,0,0,0,58],转换后为[0,0,80,66,0]。
convertTo
声明为
const
,因此不应发生这种情况。这可能与调试器如何显示该信息有关。例如,尝试在控制台中打印
lbp\u image
的值。您必须在“监视”窗口中投射数据指针:
(float*)(mat.data),5
否则,您只能看到字节