C++ Bc. 14 cpp: Porovnání verzí
m Stránka C plus plus Bc. 14 cpp přemístěna na stránku C++ Bc. 14 cpp |
m +kategorie programovani, c++ |
||
Řádek 78: | Řádek 78: | ||
0 0 1 1 2 2 3 3 2 1 0 0 0 2 4 | 0 0 1 1 2 2 3 3 2 1 0 0 0 2 4 | ||
[ [[C | [ [[C++ Bc. 14|Zpět]] ] | ||
[[Kategorie:Programování]] | |||
[[Kategorie:C++]] |
Aktuální verze z 2. 9. 2006, 10:46
#include <iostream> #include <matvec/matvec.h> GNU_gama::Mat<int> filtr(const GNU_gama::Mat<int>& N, int kernel=3) { const int K = kernel/2; GNU_gama::Mat<int> M(N.rows(), N.cols()); for (int i=1; i<=N.rows(); i++) for (int j=1; j<=N.cols(); j++) { int s = 0; int n = 0; for (int a=-K; a<=K; a++) for (int b=-K; b<=K; b++) { int k = i+a; int l = j+b; if (k < 1 || k > N.rows()) continue; if (l < 1 || l > N.cols()) continue; s += N(k,l); n++; } M(i,j) = s/n; } return M; } int main() { GNU_gama::Mat<int> A(10,15); A = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 0,0,9,9,0,0,0,0,0,0,0,0,0,0,2, 0,0,9,9,0,0,0,0,0,0,3,3,0,0,3, 0,0,9,9,0,0,0,0,0,0,3,3,0,0,4, 0,0,9,9,0,0,0,0,0,0,0,0,0,0,5, 0,0,9,9,9,9,9,0,0,0,0,0,0,0,6, 0,0,9,9,9,9,9,0,0,0,0,0,0,0,7, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,8, 0,1,2,3,4,5,6,7,8,0,0,0,0,0,9; std::cout << A << "\n" << filtr(A,3); }
výstup
10 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 9 9 0 0 0 0 0 0 0 0 0 0 2 0 0 9 9 0 0 0 0 0 0 3 3 0 0 3 0 0 9 9 0 0 0 0 0 0 3 3 0 0 4 0 0 9 9 0 0 0 0 0 0 0 0 0 0 5 0 0 9 9 9 9 9 0 0 0 0 0 0 0 6 0 0 9 9 9 9 9 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 1 2 3 4 5 6 7 8 0 0 0 0 0 9 10 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 2 4 4 2 0 0 0 0 0 0 0 0 0 1 0 3 6 6 3 0 0 0 0 0 1 1 0 1 1 0 3 6 6 3 0 0 0 0 0 1 1 0 1 2 0 3 6 7 5 3 2 1 0 0 0 0 0 1 2 0 3 6 8 7 6 4 2 0 0 0 0 0 2 3 0 2 4 6 6 6 4 2 0 0 0 0 0 2 3 0 1 2 4 4 4 4 3 1 0 0 0 0 2 4 0 0 1 1 2 2 3 3 2 1 0 0 0 2 4
[ Zpět ]