我想编写一个维纳滤波器来改善图像。我不想使用傅立叶,我知道有一个基于中值和方差的算法,但我找不到它。你们能帮我吗?http://en.wikipedia.org/wiki/Wiener_filter http://en.wikipedia.org/wiki/Wiener_filter
我想这就是您正在寻找的。 https://www.ocf.berkeley.edu/~rayver/mm/code/cvWiener2/这段代码是由 Ray Juang 编写的。
使用上面代码的示例
void main(int argc, char *argv[])
if (argc <= 1) {
printf("Usage: %s <image>\n", argv[0]);
return;
}
IplImage *tmp = cvLoadImage(argv[1]);
IplImage *tmp2 = cvCreateImage(cvSize(tmp->width, tmp->height), IPL_DEPTH_8U, 1);
cvCvtColor(tmp, tmp2, CV_RGB2GRAY);
cvNamedWindow("Before");
cvShowImage("Before", tmp);
cvWiener2(tmp2, tmp2, 3,3);
cvNamedWindow("After");
cvShowImage("After", tmp2);
//cvSaveImage("C:/temp/result.png", tmp2);
cvWaitKey(-1);
cvReleaseImage(&tmp);
cvReleaseImage(&tmp2);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)