C++ Bc. 14 cpp: Porovnání verzí
Bez shrnutí editace |
m +kategorie programovani, c++ |
||
| (Nejsou zobrazeny 3 mezilehlé verze od 2 dalších uživatelů.) | |||
| Řádek 1: | Řádek 1: | ||
[ [[C | #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 | |||
[ [[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 ]