void silhouetteCount(string nameImageFile){ int silhouetteCounter=0; GImage* imageFile = new GImage(nameImageFile); GBufferedImage* imgageInBuffer = new GBufferedImage(0,0,imageFile->getWidth(), imageFile->getHeight()); imgageInBuffer->load(nameImageFile); int imgHaight = imgageInBuffer->getHeight(); int imgWidth = imgageInBuffer->getWidth(); GWindow gw(imgWidth, imgHaight); gw.add(imageFile); myGrid imageBinaring(imgHaight, imgWidth); binaringImageToGrid(imgageInBuffer, imageBinaring); bool silhouetteIsValid = false; for(int x = 0; x < imgHaight; x++){ for (int y = 0; y < imgWidth; y++){ if (imageBinaring.get_color(x,y) == true && imageBinaring.get_visited(x,y) == false) { selectFindeArea(x,y, imageBinaring, silhouetteIsValid); if (silhouetteIsValid) silhouetteCounter++; } } } cout<<"in File: "<<nameImageFile<<"; found "<< silhouetteCounter<<" silhouettes."<<endl; cout<<endl; delete imgageInBuffer; delete imageFile; }
void test_image() { GImage *im = new GImage("avatar.gif"); // in images subdirectory GImage *webIm = new GImage("http://tikiloungetalk.com/wp-content/uploads/2010/11/speedracer-old.jpg"); #ifdef _WIN32 GImage *absPathIm = new GImage("C:/Qt/Qt5.3.2/Tools/QtCreator/share/qtcreator/qmlicons/Qt/16x16/CountBubble.png"); #else GImage *absPathIm = new GImage("/usr/share/doc/cups/images/smiley.jpg"); #endif gw->add(im, 10, 10); int x = 10 + im->getWidth(); gw->add(webIm, x, 10); x += webIm->getWidth(); gw->add(absPathIm, x, 10); }