void Imagen::blur(int k) { int i = 0; Pixel pixel_negro(0, 0, 0); Pixel2DContainer nuevo_pixels; Pixel1DContainer filaNegra(ancho(), pixel_negro); int iter = 0; while (iter < alto()) { nuevo_pixels.push_back(filaNegra); iter++; } int kVecCompletos = (2 * k - 1) * (2 * k - 1); while (i < alto()) { int j = 0; while (j < ancho()) { vector<Pixel> kVec = kVecinos(pixels, i, j, k); if(kVec.size() == kVecCompletos) nuevo_pixels[i][j] = promedio(kVec); else nuevo_pixels[i][j] = pixel_negro; j++; } i++; } pixels = nuevo_pixels; }
vector<pair<int, int> > Imagen::posicionesMasOscuras() const { int colorMasOscuro = 255 * 3; vector<pair<int, int> > resultado; int i = 0; while (i < alto()) { int j = 0; while (j < ancho()) { Pixel estePixel = pixels[i][j]; int colorPixel = estePixel.red() + estePixel.green() + estePixel.blue(); if (colorPixel < colorMasOscuro) colorMasOscuro = colorPixel; j++; } i++; } i = 0; while (i < alto()) { int j = 0; while (j < ancho()) { Pixel estePixel = pixels[i][j]; int colorPixel = estePixel.red() + estePixel.green() + estePixel.blue(); if (colorPixel == colorMasOscuro) resultado.push_back(make_pair(i, j)); j++; } i++; } return resultado; }
void Imagen::guardar(std::ostream& os) const { os << alto() << " " << ancho() << " "; int i = 0; os << "["; while (i < alto()) { int j = 0; while (j < ancho()) { if(i != 0 || j != 0) os << ","; pixels[i][j].guardar(os); j++; } i++; } os << "]"; }
nkMenuTool* nkToolBar::insertarMenu(long id, const wxString& nombreMenu){ nkMenuTool* un_menu = new nkMenuTool(this, id, nombreMenu, wxPoint(ALINEACION,alto()), wxSize(nkMenuTool::ANCHO_TOOLBAR , nkTool::LARGO_X_ANCHO_ICONO.GetHeight() + ALINEACION), wxBORDER_STATIC ); prv_listaMenus.Append(un_menu); return un_menu; }
bool Imagen::operator==(const Imagen &otra) const { bool resultado = true; if(alto() != otra.alto() || ancho() != otra.ancho()) resultado = false; else { int i = 0; while (i < alto()) { int j = 0; while (j < ancho()) { Pixel p1 = pixels[i][j]; Pixel p2 = otra.obtenerPixel(i, j); if (p1.red() != p2.red() || p1.green() != p2.green() || p1.blue() != p2.blue()) resultado = false; j++; } i++; } } return resultado; }