如何解决OpenCV IplImage数据将浮动
| 有没有一种方法可以将IplImage指针转换为浮点指针?基本上将imagedata转换为float。 感谢对此的任何帮助。解决方法
使用
cvConvert(src,dst)
,其中src
是源图像,dst
是预分配的浮点图像。
例如。
dst = cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_32F,1);
cvConvert(src,dst);
, // Original image gets loaded as IPL_DEPTH_8U
IplImage* colored = cvLoadImage(\"coins.jpg\",CV_LOAD_IMAGE_UNCHANGED);
if (!colored)
{
printf(\"cvLoadImage failed!\\n\");
return;
}
// Allocate a new IPL_DEPTH_32F image with the same dimensions as the original
IplImage* img_32f = cvCreateImage(cvGetSize(colored),colored->nChannels);
if (!img_32f)
{
printf(\"cvCreateImage failed!\\n\");
return;
}
cvConvertScale(colored,img_32f);
// quantization for 32bit. Without it,this img would not be displayed properly
cvScale(img_32f,img_32f,1.0/255);
cvNamedWindow(\"test\",CV_WINDOW_AUTOSIZE);
cvShowImage (\"test\",img_32f);
, 您无法通过简单地投射指针将图像转换为浮动图像。您需要遍历每个像素并计算新值。
请注意,大多数浮动图像类型都假定范围为0-1,因此您需要将每个像素除以所需的最大值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。