从“CvSeq”类型到“CvPoint*”类型的无效转换(如何在 Opencv 中进行类型转换)
Posted
技术标签:
【中文标题】从“CvSeq”类型到“CvPoint*”类型的无效转换(如何在 Opencv 中进行类型转换)【英文标题】:invalid cast from type ‘CvSeq’ to type ‘CvPoint* (How to typecast in Opencv) 【发布时间】:2010-03-29 07:45:17 【问题描述】:我在下面一行得到错误
Vertex2 = (CvPoint*)Vertices[I]; //其中vertices是轮廓的cvseq,Vertex2是cvpoint
我从“CvSeq”类型到“CvPoint*”类型的错误无效转换
我该如何解决这个问题
【问题讨论】:
请展示足够多的代码来帮助我们找出问题所在——在这种情况下,包括 Vertex2 和 Vertices 的声明。 【参考方案1】:你只是想获取数组中元素的地址吗?在这种情况下你会去
cvseq* Vertex2 = &Vertices[i];
一个名为 Vertex2 的指针,类型为 cvseq 指针,其值是数组 Vertices 中元素 i 的地址。
更新:
只是为了帮助您准确了解您的代码有什么问题。
'CvSeq' to type 'CvPoint*'
这表示您有一个 CvPoint* 类型的变量(即您的 Vertex2),并且您正在尝试分配 CvSeq 类型的数据。
【讨论】:
Hai Vertex2 属于 CVPoint,而 Vertices 属于 Cvseq 类型,它不能使用它说不能在初始化中将“CvSeq*”转换为“CvPoint*” 与我的代码行?您以后是否尝试将 Vertex2 用于喜欢采用 Cvpoint* 的函数? cvseq 和 cvpoint 有什么区别?您不能总是从一种类型转换为另一种类型。它适用于将浮点数转换为整数以减少小数部分,但尝试将“猫”转换为“花”太复杂了。要将“cat”转换为“flower”,您需要扩展 cat 类以具有一个函数,该函数以“flower”类型实例的格式返回数据 我的代码看起来像这样 else Vertex2 = (CvPoint*)Vertices[I];//这是我得到的错误 if(I以上是关于从“CvSeq”类型到“CvPoint*”类型的无效转换(如何在 Opencv 中进行类型转换)的主要内容,如果未能解决你的问题,请参考以下文章