1. 程式人生 > >PAT 1066影象過濾

PAT 1066影象過濾

影象過濾是把影象中不重要的畫素都染成背景色,使得重要部分被凸顯出來。現給定一幅黑白影象,要求你將灰度值位於某指定區間內的所有畫素顏色都用一種指定的顏色替換。

輸入格式:

輸入在第一行給出一幅影象的解析度,即兩個正整數M和N(0 < M, N <= 500),另外是待過濾的灰度值區間端點A和B(0 <= A < B <= 255)、以及指定的替換灰度值。隨後M行,每行給出N個畫素點的灰度值,其間以空格分隔。所有灰度值都在[0, 255]區間內。

輸出格式:

輸出按要求過濾後的影象。即輸出M行,每行N個畫素灰度值,每個灰度值佔3位(例如黑色要顯示為000),其間以一個空格分隔。行首尾不得有多餘空格。

輸入樣例:
3 5 100 150 0
3 189 254 101 119
150 233 151 99 100
88 123 149 0 255
輸出樣例:
003 189 254 000 000
000 233 151 099 000
088 000 000 000 255
分析:
...
原始碼:
#include<iostream>
using namespace std;
void printnum(int num)
{
  if(num<=9)
  cout<<"00"<<num;
  else if(num<=99)
  cout<<"0"<<num;
  else cout<<num;
}
int
main() { int M,N,A,B,t;int a[500][500]; cin>>M>>N>>A>>B>>t; for(int i=0;i<M;i++) for(int j=0;j<N;j++) { cin>>a[i][j]; if(a[i][j]>=A&&a[i][j]<=B) a[i][j]=t; } for(int i=0;i<M;i++) { for(int j=0;j<N-1;j++) { printnum(a[i][j]); cout<<"
"
; } printnum(a[i][N-1]); cout<<endl; } return 0; }