演算法學習之路|影像過濾
影像過濾是把影像中不重要的畫素都染成背景色,使得重要部分被凸顯出來。現給定一幅黑白影像,要求你將灰度值位於某指定區間內的所有畫素顏色都用一種指定的顏色替換。
輸入格式:
輸入在第一行給出一幅影像的解析度,即兩個正整數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]);
}
相關文章
- 【PAT乙級】1066 影像過濾
- 影像處理的濾鏡演算法演算法
- RxJava 學習筆記 -- 過濾操作符RxJava筆記
- 【學習】SQL基礎-003-過濾排序SQL排序
- OpenCV計算機視覺學習(4)——影像平滑處理(均值濾波,高斯濾波,中值濾波,雙邊濾波)OpenCV計算機視覺
- 強化學習之路一 QLearning 演算法強化學習演算法
- [機器學習]協同過濾演算法的原理和基於Spark 例項機器學習演算法Spark
- Vue學習(一)過濾器以及padStart和padEndVue過濾器
- SpringBoot+Shiro學習(七):Filter過濾器管理Spring BootFilter過濾器
- LevelDB 學習筆記1:布隆過濾器筆記過濾器
- 演算法 | 數字影像處理之「中值濾波」演算法
- 小白機器學習基礎演算法學習必經之路(下)機器學習演算法
- 影像濾鏡藝術----Brannan濾鏡NaN
- Python 通過 .cube LUT 檔案對影像加濾鏡Python
- 1.影像濾波與影像融合
- 演算法金 | 深度學習影像增強方法總結演算法深度學習
- js實現敏感詞過濾演算法JS演算法
- JAVA使用DFA演算法過濾敏感詞Java演算法
- 演算法(3)---布隆過濾器原理演算法過濾器
- eggjs學習之路JS
- java學習之路Java
- Pytest學習之路
- 協同過濾演算法概述與python 實現協同過濾演算法基於內容(usr-it演算法Python
- 機器學習&深度學習之路機器學習深度學習
- HDR影像學習之旅
- OpenCV計算機視覺學習(10)——影像變換(傅立葉變換,高通濾波,低通濾波)OpenCV計算機視覺
- 過濾或者查詢敏感詞(DFA 演算法)演算法
- DFA演算法之內容敏感詞過濾演算法
- OceanBase學習之路6|透過 Obclient 連線 OceanBase 租戶client
- 學習ASP.NET Core(08)-過濾搜尋與分頁排序ASP.NET排序
- 過濾
- 付費學習之路
- 產品學習之路
- vue-學習之路Vue
- 信安學習之路
- web前端學習之路Web前端
- linux學習之路(1)Linux
- 凡人學習Linux之路Linux
- Python 學習之路(下)Python