VS2010 opencv ,error C2664: “cvMorphologyEx”: 不能将参数 4 从“”转换为“IplConvKernel *”

artemis77 2013-04-23 01:10:24
cvMorphologyEx(hsv_mask, smooth1, 0, CV_SHAPE_RECT, CV_MOP_CLOSE, MopEx_value)
第四个参数错了?差个指针吗?这句要怎么改?
...全文
236 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kezhiyang4 2013-04-24
  • 打赏
  • 举报
回复
3楼的能具体说一下如何修改么?
青松2 2013-04-23
  • 打赏
  • 举报
回复
第四个参数你搞错了,你仔细看看下面的文档,真替你着急 在OpenCV中,定义了一个结构用于描述形态学中的结构元素。该结构定义如下: typedef struct _IplConvKernel { int nCols; int nRows; int anchorX; int anchorY; int *values; int nShiftR; } IplConvKernel; 在这里,对其中的变量定义做一简单的描述: nCols,nRows:结构元素的行宽与列高; anchorX,anchorY:结构元素原点(锚点)的位置坐标,水平,垂直; nShiftR:用于表示结构元素的形状类型,有如下几个值: #define CV_SHAPE_RECT 0 #define CV_SHAPE_CROSS 1 #define CV_SHAPE_ELLIPSE 2 #define CV_SHAPE_CUSTOM 100 分别表示矩形,十字,椭圆和自定义。 values:当nShiftR为自定义时,value是指向结构元素数据的指针,如果结构元素的大小定义为8*6,那么values为48长的int数组,值为0或1。 在OpenCV中定义了两个关于结构元素IplConvKernel的操作,用于结构元素的创建和释放。 cvCreateStructuringElementEx 创建结构元素 IplConvKernel* cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y, int shape, int* values=NULL ); cols 结构元素的列数目 rows 结构元素的行数目 anchor_x 锚点的相对水平偏移量 anchor_y 锚点的相对垂直偏移量 shape 结构元素的形状,可以是下列值: CV_SHAPE_RECT, 长方形元素; CV_SHAPE_CROSS, 交错元素 a cross-shaped element; CV_SHAPE_ELLIPSE, 椭圆元素; CV_SHAPE_CUSTOM, 用户自定义元素。这种情况下参数 values 定义了 mask,即象素的那个邻域必须考虑。 values 指向结构元素的指针,它是一个平面数组,表示对元素矩阵逐行扫描。(非零点表示该点属于结构元)。如果指针为空,则表示平面数组中的所有元素都是非零的,即结构元是一个长方形(该参数仅仅当shape参数是 CV_SHAPE_CUSTOM 时才予以考虑)。 函数 cv CreateStructuringElementEx 分配和填充结构 IplConvKernel, 它可作为形态操作中的结构元素。 cvReleaseStructuringElement 删除结构元素 void cvReleaseStructuringElement( IplConvKernel** element ); element 被删除的结构元素的指针 函数 cvReleaseStructuringElement 释放结构 IplConvKernel 。如果 *element 为 NULL, 则函数不作用。
jimette 2013-04-23
  • 打赏
  • 举报
回复
看opencv的文档啊!

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧