演算法學習之路|影像過濾
影像過濾是把影像中不重要的畫素都染成背景色,使得重要部分被凸顯出來。現給定一幅黑白影像,要求你將灰度值位於某指定區間內的所有畫素顏色都用一種指定的顏色替換。
輸入格式:
輸入在第一行給出一幅影像的解析度,即兩個正整數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
解題思路:很簡單,判斷一個(i,j)的
(I-1,j-1)(I-1,j)(I+1,j)
(I,j-1) (I,j+1)
(I+1,j-1)(I+1,j)(I+1,j+1)即可
#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
int main(){
int hang,lie;
int low,high,sub;
cin>>hang>>lie>>low>>high>>sub;
vector<int> v;
for(int i=0;i<hang*lie;i++){
int tmp;
cin>>tmp;
if(tmp<=high&&tmp>=low)
tmp=sub;
v.push_back(tmp);
}
int i=0;
for(;i<v.size()-lie;i++){
printf("%03d",v[i]);
if((i+1)%lie==0)
cout<<endl;
else
cout<<" ";
}
for(;i<v.size()-1;i++){
printf("%03d ",v[i]);
}
printf("%03d",v[v.size()-1]);
}
相關文章
- 演算法學習之路|划拳演算法
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|朋友數演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|歐幾里得遊戲演算法遊戲
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|數零壹演算法
- 影像處理的濾鏡演算法演算法
- 演算法學習之路|開學寄語演算法
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|賣個萌演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- 演算法學習之路|字元統計演算法字元
- 演算法學習之路|科學計數法演算法
- RxJava 學習筆記 -- 過濾操作符RxJava筆記
- 【學習】SQL基礎-003-過濾排序SQL排序
- css的過濾器的簡單學習CSS過濾器
- angular學習筆記(十六) -- 過濾器(1)Angular筆記過濾器
- angular學習筆記(十六) -- 過濾器(2)Angular筆記過濾器
- OpenCV計算機視覺學習(4)——影像平滑處理(均值濾波,高斯濾波,中值濾波,雙邊濾波)OpenCV計算機視覺
- 演算法學習之路|PlayOnWords(尤拉道路+dfs)演算法
- 演算法學習之路|舊鍵盤打字演算法
- 演算法學習之路|最簡分數演算法
- 演算法學習之路|檢驗身份證演算法
- 演算法學習之路|愛丁頓數演算法
- 協同過濾演算法演算法
- LevelDB 學習筆記1:布隆過濾器筆記過濾器
- 演算法學習之路|最小生成樹——prime演算法演算法