2017-06-16 6 views
1

現在、私は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 argument\n"); 
     exit(EXIT_SUCCESS); 
    } 

    img = cvLoadImage(argv[1]); 

    if(!img) { 
     printf("Error loading image file %s\n", 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のガウスブラー係数を知るにはどうすればよいですか?

+0

www.google.comには、「cvSmooth」と入力します。 – Piglet

答えて

1

IplImageにはガウスぼかし係数がありません。 IplImageは、画像データを格納するためのIntel Processing Libraryのデータ構造です。

フィルター操作で使用される係数はどのようにして見つけることができますか? さてあなたはあなたの関数呼び出しのシグマを提供していないとして

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

は(または私は疑うためのは、他の誰かの関数呼び出しで言わせて、あなたがそのコードを書いた)...マニュアルを読んで見つけますガウシアンパラメータの場合には0

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

に、デフォルトこのパラメータは ガウシアンシグマ(標準偏差)を指定することができます。それがゼロである場合は、カーネルサイズから を計算する:

シグマ= 0.3(N/2から1)+ 0.8、nが標準を使用して、カーネルサイズ

ある

小さなカーネルのシグマ(3 x 3〜7 x 7) はより良いスピードを提供します。 sigma1がゼロでなく、size1とsize2が のゼロである場合、カーネルサイズはシグマから計算されます(十分な精度の を提供するため)。

関連する問題