高斯卷积核如何生成 C语言实现
? ? 對于學圖像專業的人來說,對圖像進行高斯濾波應該不會陌生,本質上就是將圖像與高斯核進行卷積。
但是高斯核是如何生成的呢。matlab中有函數能自動生成高斯卷積核:
? ??gs=fspecial('gaussian',3,1)
? ? gs?=
????0.0751????0.1238????0.0751
????0.1238????0.2042????0.1238
????0.0751????0.1238????0.0751
? ? 算法公式:
C語言編程實現如下:
?
??void main()
{
?int i,j;
?double sigma=1;
?const int?N=3;
?double gussian[N][N];
?double sum=0.0;
?for(i=0;i<N;i++)
?{
??for(j=0;j<N;j++)
??{
???gussian[i][j]=exp(-((i-N/2)*(i-N/2)+(j-N/2)*(j-N/2))/(2.0*sigma*sigma));
???sum+=gussian[i][j];
??}
?}
?for(i=0;i<N;i++)
?{
??for(j=0;j<N;j++)
??{
???gussian[i][j]=gussian[i][j]/sum;
???printf("%f??,",gussian[i][j]);
??}
??printf("\n");
?}
}
?
轉:http://blog.sina.com.cn/s/blog_7f2d8e4e0102wuxj.html
總結
以上是生活随笔為你收集整理的高斯卷积核如何生成 C语言实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言的格式控制符问题
- 下一篇: C语言读取txt文档中的数据