簡體   English   中英

使用opencv進行高斯平滑

[英]gaussian smoothing using opencv

我在OpenCV中創建了以下高斯內核,並將其與OpenCV的GaussianBlur函數進行了比較。 但是,我得到的是黑色圖像而不是平滑圖像。 有人可以對此有所啟發嗎?

Mat src, dst1,dst2;
Mat gaussiankrnl(3,3,CV_32F);
Point anchor;
double delta;
int ddepth;

anchor = Point( -1, -1 );
delta = 0;
ddepth = -1;

src = imread("coins.pgm");




gaussiankrnl.at<double>(0,0) = 1/16;
gaussiankrnl.at<double>(0,1) = 2/16;
gaussiankrnl.at<double>(0,2) = 1/16;
gaussiankrnl.at<double>(1,0) = 2/16;
gaussiankrnl.at<double>(1,1) = 4/16;
gaussiankrnl.at<double>(1,2) = 2/16;
gaussiankrnl.at<double>(2,0) = 1/16;
gaussiankrnl.at<double>(2,1) = 2/16;
gaussiankrnl.at<double>(2,2) = 1/16;


filter2D(src, dst1, ddepth , gaussiankrnl, anchor, delta, BORDER_DEFAULT );

GaussianBlur(src, dst2, Size(3,3), 1.0);

imshow("result1", dst1 );
imshow("result2", dst2 );

cvWaitKey(0);
return 0;

您正在將整數除以零內核。

1/16更改為1.0/16.0以及其他值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM