图像的中值滤波处理
2024-07-05 12:31:25 225人阅读
#include<iostream> using namespace std; int main() { int n,m,i,j,k,o,u,p,a[100][100],x[100][100],max[100][100][20],b[100][100]; cout<<"输入矩阵行列数:"<<endl; cin>>n>>m; cout<<"输入原图像的亮度矩阵:"<<endl; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cin>>a[i][j]; } } for(k=1;k<=n;k++) { a[k][0]=a[k][1]; a[k][m+1]=a[k][m]; } for(k=1;k<=m;k++) { a[0][k]=a[1][k]; a[n+1][k]=a[n][k]; } a[0][0]=a[1][1]; a[0][m+1]=a[1][m]; a[n+1][0]=a[n][1]; a[n+1][m+1]=a[n][m]; for(i=0;i<=n-1;i++) { for(j=0;j<=m-1;j++) { for(k=1;k<=5;k++) { max[i+1][j+1][k]=0; for(p=i;p<=i+2;p++) { for(u=j;u<=j+2;u++) { max[i+1][j+1][k]=(a[p][u]>=max[i+1][j+1][k])?a[p][u]:max[i+1][j+1][k]; } } if(k<=4) { for(p=i;p<=i+2;p++) { for(u=j;u<=j+2;u++) { if(max[i+1][j+1][k]==a[p][u]) { b[p][u]=a[p][u]; a[p][u]=0; break; } } if(a[p][u]==0) { break; } } } if(k==5) { x[i+1][j+1]=max[i+1][j+1][k]; } } for(k=1;k<=5;k++) { for(p=i;p<=i+2;p++) { for(u=j;u<=j+2;u++) { if(max[i+1][j+1][k]==b[p][u]) { a[p][u]=max[i+1][j+1][k]; //数据的恢复 } } } } } } cout<<"中值滤波后的新图像亮度矩阵为:"<<endl; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cout<<" "<<x[i][j]; } cout<<endl; } return 0; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。