使用最新的OpenCVSharp v2(2.4.10.201 ...),我在我的项目中使用NuGet管理器安装。
我使用的代码是:
filledArea = new CvMat( hue.Rows + 2, hue.Cols + 2, MatrixType.U8C1 );
Cv.FloodFill( hue, hintPos, new CvScalar(255,255,255), low, upp, out filledAreaData,
FloodFillFlag.Link8 | FloodFillFlag.FixedRange, filledArea );
,其中 hue 是输入图片
hintPos 是CvPoint(10,400)
low = upp = CvScalar(10,10,10,10)
注意 :"损坏模式"是随机的,每次都在变化。
答案 0 :(得分:0)
没有使用零值初始化掩码是一个问题。它看起来像这样:
filledArea = new CvMat( hue.Rows + 2, hue.Cols + 2, MatrixType.U8C1 );
DOESN' T将保留的内存初始化为任何值,这样就会损坏"#34;像素。
filledArea = new CvMat( hue.Rows + 2, hue.Cols + 2, MatrixType.U8C1, new CvScalar(0,0,0,0) );
创建一个0像素的遮罩。
我错了,我认为C#无法在没有先将其初始化为某个值的情况下获取新内存,就像Array []和List ...
一样