matlab中采用im2double将读入的图像转换为double型。那对应于opencv中用IplImage读入的图像怎么实现呢?
1个回答
展开全部
可以新创建一个float型的图像,然后用cvConvertScale函数将整型变为float型数据
更多追问追答
追答
首先im2double只是将整型数据变为double型数据,也即,将18变为18.0,它没有对图像进行归一化,如果想归一化可以:I_double = im2double(I);I_double = I_double./255。另外你要注意你创建的float图像的通道和你载入的图像通道是一致的。还有就是你的cvConvertScale函数有问题,应该是cvConvertScale(img,I,1.0/255.0,0)。最后一点,由于你的图像I已经是float型,所以你在访问其数据时要用float型指针,也即float* data = (float*)I->imageData;
如果matlab函数需要用到归一化数据,而你刚好想按照matlab编写你自己的c函数,那么你就可以用cvConvertScale函数对图像进行归一化。
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询