OpenCV中与C++ unsigned long对应的数据类型是哪个?
2个回答
展开全部
可以去看opencv的文档。
我用的OpenCV是2.X版本的,OpenCV内置的数据类型有下面几种:
• 8-bit unsigned integer (uchar) CV_8U
• 8-bit signed integer (schar) CV_8S
• 16-bit unsigned integer (ushort) CV_16U
• 16-bit signed integer (short) CV_16S
• 32-bit signed integer (int) CV_32S
• 32-bit floating-point number (float) CV_32F
• 64-bit floating-point number (double) CV_64F
没有unsigned long。
OpenCV中有个关于数据的DataType<>的trait class,我没用过,可能可以指定自己的类型。
我用的OpenCV是2.X版本的,OpenCV内置的数据类型有下面几种:
• 8-bit unsigned integer (uchar) CV_8U
• 8-bit signed integer (schar) CV_8S
• 16-bit unsigned integer (ushort) CV_16U
• 16-bit signed integer (short) CV_16S
• 32-bit signed integer (int) CV_32S
• 32-bit floating-point number (float) CV_32F
• 64-bit floating-point number (double) CV_64F
没有unsigned long。
OpenCV中有个关于数据的DataType<>的trait class,我没用过,可能可以指定自己的类型。
展开全部
opencv没有重定义这些基本类型,你可以直接用这类型。
可能有些用define定义的宏名,你可以去opencv目录下用windows自带的搜索,查找出来。
可能有些用define定义的宏名,你可以去opencv目录下用windows自带的搜索,查找出来。
更多追问追答
追问
直接用哪个类型啊?不太明白,能不能详细一些?对于opencv没有重定义这些基本类型如何用?譬如我把CvMat Ma = cvMat(size.x,size.y,CV_16SC1,data_16_ptr)中的CV_16SC1直接换为 unsigned long,有编辑错误的
追答
这不一样。你原来问的是这个。
你去看宏定义CV_16SC1是一个数字,代表单通道(看C后面的数字)16位有符合整形,这个数字是opencv里面定义的一个规范。具体你去打开opencv.sln,然后查找CV_16SC1,再右键查看定义,就能看到符合cvMat的参数范围。
而cvMat里面是要求参数类型是int,你报错的原因应该是参数类型不对。unsigned long和int不是一个意思。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询