如何知道 iplimage 的高斯模糊系数?



目前我正在使用iplimage的高斯模糊。 喜欢这个

# include "stdio.h"
# include "highgui.h"
# include "cv.h"
int main( int argc, char** argv ) {
IplImage* img = 0;
IplImage* out = 0;
if( argc < 2 ) {
printf( "Usage: Accepts one image as argumentn" );
exit( EXIT_SUCCESS );
}
img = cvLoadImage( argv[1] );
if( !img ) {
printf( "Error loading image file %sn", argv[1]);
exit( EXIT_SUCCESS );
}
out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );

cvSmooth( img, out, CV_GAUSSIAN, 3, 3 );
cvReleaseImage( &img );
cvReleaseImage( &out );
cvDestroyWindow( "Example1" );
cvDestroyWindow( "Output" );
return EXIT_SUCCESS;
}

但我不知道在 iplimage 的高斯模糊中使用了什么系数。

如何知道 iplimage 的高斯模糊系数?

IplImage 没有任何高斯模糊系数。IplImage 是英特尔处理库中的一种数据结构,用于存储图像数据。

如何找到过滤器操作中使用的系数? 好吧,您阅读手册并找出...

http://docs.opencv.org/3.0-beta/modules/imgproc/doc/filtering.html#smooth

由于您没有在函数调用中提供 sigma(或者让我们在其他人的函数调用中说,因为我怀疑您编写了该代码),因此它默认为 0。

cvSmooth( img, out, CV_GAUSSIAN, 3, 3 );

对于高斯参数,此参数可以指定 高斯西格玛(标准差)。如果为零,则计算 从内核大小:

西格玛 = 0.3 (n/2 - 1) + 0.8

其中 n 是内核大小

对小内核使用标准西格玛(3 x 3 至 7 x 7) 提供更好的速度。如果 sigma1 不为零,则大小 1 和大小 2 为 零,内核大小由 sigma 计算得出(提供 操作足够精确)。

相关内容

  • 没有找到相关文章

最新更新