扩展函数
问题描述:
我是OpenCv的初学者。我看着opencv morphological dilation filter as maximum filter和how remove binary image noise in opencv?,但我无法准确理解如何使用扩张功能。我想要做一些事情喜欢这幅画与功能:扩展函数
http://up98.org/upload/server1/02/e/q42oinl73zpv7epkccrz.jpg
请你一步解释我一步?我应该使用这个功能吗?
void cvDilate(
IplImage* src,
IplImage* dst,
IplConvKernel* B = NULL,
int iterations = 1
)
如果有,我应该怎么放
IplImage* src
IplImage* dst
B
IplConvKernel* B = NUL
int iterations = 1
,而不是如何为它的操作?
我的意思是说,在我调用函数之前应该做什么?
我应该写的.h和.cpp
谢谢!
答
您正在使用普通的C OpenCV API。没有错,但我更喜欢新的C++ API
关于你的问题:
IplImage* src
- 是源图像,一个你已经有了,并希望它扩张;IplImage* dst
- 是目标图像,只应在调用此函数之前声明;IplConvKernel* B
- 这是一个有点难以解释在简短的词汇,而是一个微小的图像,通常一个3x3像素,这将是使用,让您的图片“更多的脂肪”的功能,在每个给定数的事情的迭代,请检查here。如果你让它成为一个空指针,默认值将被使用,并且它应该足以满足大多数应用程序;int iterations
- 内核将在源图像的轮廓周围使用以使其特征在每次都变得更“胖”的次数;
至于你的形象,实现这一结果,你应该先扩张一定次数的迭代,然后削弱它后面的迭代次数相同。
查看此编号here。
它使用新的C++ API,但不应该将问题“翻译”回原来的C API,因为函数的结构完全相同。
希望它有帮助