int main(int argc, char *argv[]) { PNMreader reader(argv[1]); PNMwriter writer; Shrinker shrinker1; Shrinker shrinker2; LRConcat lrconcat1; LRConcat lrconcat2; TBConcat tbconcat1; TBConcat tbconcat2; Blender blender; blender.SetFactor(0.8); shrinker1.SetInput(reader.GetOutput()); lrconcat1.SetInput(shrinker1.GetOutput()); lrconcat1.SetInput2(shrinker1.GetOutput()); tbconcat1.SetInput(lrconcat1.GetOutput()); tbconcat1.SetInput2(lrconcat1.GetOutput()); shrinker2.SetInput(tbconcat1.GetOutput()); lrconcat2.SetInput(shrinker2.GetOutput()); lrconcat2.SetInput2(shrinker1.GetOutput()); tbconcat2.SetInput(lrconcat2.GetOutput()); tbconcat2.SetInput2(lrconcat1.GetOutput()); blender.SetInput(tbconcat2.GetOutput()); blender.SetInput2(reader.GetOutput()); writer.SetInput(blender.GetOutput()); //fprintf(stderr, "image pointer %p\n", reader.image.getBuffer()); reader.Execute(); shrinker1.Execute(); lrconcat1.Execute(); tbconcat1.Execute(); shrinker2.Execute(); lrconcat2.Execute(); tbconcat2.Execute(); blender.Execute(); writer.Write(argv[2]); }
int main(int argc, char *argv[]) { PNMreader reader(argv[1]); Crop crop; crop.SetRegion(300, 1400, 50, 400); crop.SetInput(reader.GetOutput()); Transpose t; t.SetInput(crop.GetOutput()); Invert i; i.SetInput(t.GetOutput()); Color color(50, 1101, 0, 0, 128); LRConcat lr; lr.SetInput(color.GetOutput()); lr.SetInput2(i.GetOutput()); Color white(401, 1101, 255, 255, 255); Checkerboard cb; cb.SetInput(lr.GetOutput()); cb.SetInput2(white.GetOutput()); cb.GetOutput()->Update(); PNMwriter writer; writer.SetInput(cb.GetOutput()); writer.Write(argv[2]); CheckSum cs; cs.SetInput(cb.GetOutput()); cs.OutputCheckSum(); Logger::Finalize(); }
int main(int argc, char *argv[]) { if (argc < 2) { cerr << "Usage: " << argv[0] << " <username>" << endl; exit(EXIT_FAILURE); } char event[1024]; sprintf(event, "Entered program from %s\n", argv[1]); Logger::LogEvent(event); /* START STUDENT MODIFIABLE SECTION */ PNMreader reader("../images/puddles.pnm"); Shrinker shrinker1; Shrinker shrinker2; LRConcat lrconcat1; LRConcat lrconcat2; TBConcat tbconcat1; TBConcat tbconcat2; Checkerboard blender; shrinker1.SetInput(reader.GetOutput()); shrinker2.SetInput2(shrinker1.GetOutput()); lrconcat1.SetInput(shrinker1.GetOutput()); lrconcat1.SetInput2(shrinker2.GetOutput()); tbconcat1.SetInput(shrinker1.GetOutput()); tbconcat2.SetInput2(shrinker2.GetOutput()); blender.SetInput(reader.GetOutput()); blender.SetInput2(tbconcat1.GetOutput()); /* Make the image "finalImage" be the image at the bottom of your pipeline */ Image *finalImage = blender.GetOutput(); /* END STUDENT MODIFIABLE SECTION */ try { finalImage->Update(); } catch (DataFlowException &) { ofstream ofile("my_exception"); if (ofile.fail()) { cerr << "Something is wrong ... can't open my_exception" << " for opening" << endl; exit(EXIT_FAILURE); } ofile << "Exception found!" << endl; exit(EXIT_SUCCESS); } CheckSum cs; cs.SetInput(finalImage); cs.OutputCheckSum("my_checksum"); if (argc == 3) { PNMwriter writer; writer.SetInput(finalImage); writer.Write("3H.pnm"); } Logger::Finalize(); }
int main(int argc, char *argv[]) { if (argc < 2) { cerr << "Usage: " << argv[0] << " <username>" << endl; exit(EXIT_FAILURE); } char event[1024]; sprintf(event, "Entered program from %s\n", argv[1]); Logger::LogEvent(event); /* START STUDENT MODIFIABLE SECTION */ PNMreader reader1("../images/deschutes.pnm"); PNMreader reader2("../images/question_marks.pnm"); PNMreader reader3("../images/puddles.pnm"); Color color1(75, 352, 200, 0, 0); Color color2(75, 352, 0, 0, 200); Color color3(1433, 100, 100, 0, 100); Crop crop1; crop1.SetRegion(0, 356, 0, 351); crop1.SetInput(reader1.GetOutput()); LRConcat LRCon1; LRCon1.SetInput(crop1.GetOutput()); LRCon1.SetInput2(color1.GetOutput()); LRConcat LRCon2; LRCon2.SetInput(color2.GetOutput()); LRCon2.SetInput2(reader2.GetOutput()); Checkerboard blend1; blend1.SetInput(LRCon1.GetOutput()); blend1.SetInput2(LRCon2.GetOutput()); Checkerboard blend2; blend2.SetInput(LRCon1.GetOutput()); blend2.SetInput2(LRCon2.GetOutput()); TBConcat TBCon1; TBCon1.SetInput(blend1.GetOutput()); TBCon1.SetInput2(blend2.GetOutput()); Crop crop2; crop2.SetRegion(0, 1000, 100, 803); crop2.SetInput(reader3.GetOutput()); LRConcat LRCon3; LRCon3.SetInput(TBCon1.GetOutput()); LRCon3.SetInput2(crop2.GetOutput()); TBConcat TBCon2; TBCon2.SetInput(LRCon3.GetOutput()); TBCon2.SetInput2(color3.GetOutput()); Invert invert; invert.SetInput(TBCon2.GetOutput()); TBConcat s1; s1.SetInput(color3.GetOutput()); s1.SetInput2(invert.GetOutput()); /* Make the image "finalImage" be the image at the bottom of your pipeline */ Image *finalImage = s1.GetOutput(); /* END STUDENT MODIFIABLE SECTION */ try { finalImage->Update(); } catch (DataFlowException &) { ofstream ofile("my_exception"); if (ofile.fail()) { cerr << "Something is wrong ... can't open my_exception" << " for opening" << endl; exit(EXIT_FAILURE); } ofile << "Exception found!" << endl; exit(EXIT_SUCCESS); } CheckSum cs; cs.SetInput(finalImage); cs.OutputCheckSum("my_checksum"); if (argc == 3) { PNMwriter writer; writer.SetInput(finalImage); writer.Write("3H.pnm"); } Logger::Finalize(); }
int main(int argc, char *argv[]) { if (argc < 2) { cerr << "Usage: " << argv[0] << " <username>" << endl; exit(EXIT_FAILURE); } char event[1024]; sprintf(event, "Entered program from %s\n", argv[1]); Logger::LogEvent(event); /* START STUDENT MODIFIABLE SECTION */ PNMreader reader("../images/puddles.pnm"); Color color(1786, 1344, 13,255 , 248); Checkerboard b1; b1.SetInput(reader.GetOutput()); b1.SetInput2(color.GetOutput()); Color color2(1786, 1344, 255, 13, 102); Checkerboard b2; b2.SetInput(reader.GetOutput()); b2.SetInput2(color2.GetOutput()); LRConcat l1; l1.SetInput(b1.GetOutput()); l1.SetInput2(b2.GetOutput()); LRConcat l2; l2.SetInput(b2.GetOutput()); l2.SetInput2(b1.GetOutput()); TBConcat t1; t1.SetInput(l1.GetOutput()); t1.SetInput2(l2.GetOutput()); Shrinker s1; s1.SetInput(t1.GetOutput()); Shrinker s2; s2.SetInput(t1.GetOutput()); Shrinker s3; s3.SetInput(t1.GetOutput()); Shrinker s4; s4.SetInput(t1.GetOutput()); Invert i1; i1.SetInput(s2.GetOutput()); Invert i2; i2.SetInput(s4.GetOutput()); LRConcat l3; l3.SetInput(s1.GetOutput()); l3.SetInput2(s2.GetOutput()); LRConcat l4; l4.SetInput(s4.GetOutput()); l4.SetInput2(s3.GetOutput()); TBConcat t2; t2.SetInput(l3.GetOutput()); t2.SetInput2(l4.GetOutput()); Image *finalImage = t2.GetOutput(); /* END STUDENT MODIFIABLE SECTION */ try { finalImage->Update(); } catch (DataFlowException &) { ofstream ofile("my_exception"); if (ofile.fail()) { cerr << "Something is wrong ... can't open my_exception" << " for opening" << endl; exit(EXIT_FAILURE); } ofile << "Exception found!" << endl; exit(EXIT_SUCCESS); } CheckSum cs; cs.SetInput(finalImage); cs.OutputCheckSum("my_checksum"); if (argc == 3) { PNMwriter writer; writer.SetInput(finalImage); writer.Write("3H.pnm"); } Logger::Finalize(); }
int main(int argc, char *argv[]) { if (argc < 2) { cerr << "Usage: " << argv[0] << " <username>" << endl; exit(EXIT_FAILURE); } char event[1024]; sprintf(event, "Entered program from %s\n", argv[1]); Logger::LogEvent(event); /* START STUDENT MODIFIABLE SECTION */ PNMreader reader("../images/hank.pnm"); Checkerboard b; Invert i; i.SetInput(reader.GetOutput()); b.SetInput(reader.GetOutput()); b.SetInput2(i.GetOutput()); LRConcat lr; lr.SetInput(i.GetOutput()); lr.SetInput2(b.GetOutput()); LRConcat LR; LR.SetInput(reader.GetOutput()); LR.SetInput2(i.GetOutput()); TBConcat tb; tb.SetInput(lr.GetOutput()); tb.SetInput2(LR.GetOutput()); LRConcat Lr; Lr.SetInput(tb.GetOutput()); Lr.SetInput2(tb.GetOutput()); Image *finalImage = Lr.GetOutput(); /* END STUDENT MODIFIABLE SECTION */ try { finalImage->Update(); } catch (DataFlowException &) { ofstream ofile("my_exception"); if (ofile.fail()) { cerr << "Something is wrong ... can't open my_exception" << " for opening" << endl; exit(EXIT_FAILURE); } ofile << "Exception found!" << endl; exit(EXIT_SUCCESS); } CheckSum cs; cs.SetInput(finalImage); cs.OutputCheckSum("my_checksum"); if (argc == 3) { PNMwriter writer; writer.SetInput(finalImage); writer.Write("3H.pnm"); } Logger::Finalize(); }