matlab中采用im2double将读入的图像转换为double型。那对应于opencv中用IplImage读入的图像怎么实现呢?

 我来答
oqqai123
2012-07-02 · 超过12用户采纳过TA的回答
知道答主
回答量:40
采纳率:100%
帮助的人:31.9万
展开全部
可以新创建一个float型的图像,然后用cvConvertScale函数将整型变为float型数据
更多追问追答
追问

 

im2double实现图像像素值归一化,为什么我这样写不行?此时读数组I各点的值均为0

还有就是matlab因为很多函数需要在归一化的情况下对图像做处理,在opencv中需要做归一化吗?

追答
首先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 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式