void Image_controls::set_thumbnail(const Image_buffer<rendering::Color4>& source, uint32_t channel, bool inverted, float modulate_factor) { Image_buffer<rendering::Color4>& scratch_buffer = thumbnail_provider_->scratch_buffer(); Channel_to_grayscale<rendering::Color4> to_grayscale(channel); to_grayscale.filter(scratch_buffer, source); if (inverted) { Invert<rendering::Color4> invert; invert.filter(scratch_buffer, scratch_buffer); } if (1.f != modulate_factor) { Modulate modulate(modulate_factor); modulate.filter(scratch_buffer, scratch_buffer); } const uint2& source_dimensions = source.dimensions(); const uint2& thumbnail_dimensions = thumbnail_.dimensions(); if (source_dimensions.x < thumbnail_dimensions.x || source_dimensions.y < thumbnail_dimensions.y) { Copy<rendering::Color4c> copy; copy.filter(thumbnail_, thumbnail_provider_->checkerboard()); } // No need to swap channels for Qt here, as it is grayscale To_BGRA filter(false); filter.filter(thumbnail_, scratch_buffer, source.dimensions()); QImage qimage(reinterpret_cast<const uchar*>(thumbnail_.data()), thumbnail_dimensions.x, thumbnail_dimensions.y, QImage::Format_RGB32); QPixmap pixmap = QPixmap::fromImage(qimage); ui->image_label_->setPixmap(pixmap); }
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 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/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(); }
void test_crosschannelregistration(UnitTest &ut) { ut.begin_test_set("CrossChannelRegistration"); Segmentation<uint16> segmenter; EuclideanDistanceMap<uint16> edm; Watershed<uint16> wat; Invert<uint16> inv; NWThreshold<uint16> nwt(5,0.5,60000,NWThreshold<uint16>::mask_type_square);//0.75 beautiful SwiftImage<uint16> c1a_i1("./Images/smallfake2/c1_a.tif"); cout << "Load complete" << endl; SwiftImage<uint16> c1a_i2 = nwt.process(c1a_i1); cout << "Thresholding complete" << endl; SwiftImage<uint16> c1a_i3 = edm.process(c1a_i2); cout << "EDM complete" << endl; SwiftImage<uint16> c1a_i4 = inv.process(c1a_i3); cout << "INV complete" << endl; SwiftImage<uint16> c1a_i5 = wat.process(c1a_i4); cout << "Wat complete" << endl; SwiftImage<uint16> c1a_i6 = c1a_i2 && c1a_i5; vector<SwiftImageObject<> > c1a_objs1 = segmenter.process(c1a_i6); SwiftImage<uint16> c2a_i1("./Images/smallfake2/c2_a.tif"); cout << "Load complete" << endl; SwiftImage<uint16> c2a_i2 = nwt.process(c2a_i1); cout << "Thresholding complete" << endl; SwiftImage<uint16> c2a_i3 = edm.process(c2a_i2); cout << "EDM complete" << endl; SwiftImage<uint16> c2a_i4 = inv.process(c2a_i3); cout << "INV complete" << endl; SwiftImage<uint16> c2a_i5 = wat.process(c2a_i4); cout << "Wat complete" << endl; SwiftImage<uint16> c2a_i6 = c2a_i2 && c2a_i5; vector<SwiftImageObject<> > c2a_objs1 = segmenter.process(c2a_i6); SwiftImage<uint16> c1t_i1("./Images/smallfake2/c1_t.tif"); cout << "Load complete" << endl; SwiftImage<uint16> c1t_i2 = nwt.process(c1t_i1); cout << "Thresholding complete" << endl; SwiftImage<uint16> c1t_i3 = edm.process(c1t_i2); cout << "EDM complete" << endl; SwiftImage<uint16> c1t_i4 = inv.process(c1t_i3); cout << "INV complete" << endl; SwiftImage<uint16> c1t_i5 = wat.process(c1t_i4); cout << "Wat complete" << endl; SwiftImage<uint16> c1t_i6 = c1t_i2 && c1t_i5; vector<SwiftImageObject<> > c1t_objs1 = segmenter.process(c1t_i6); SwiftImage<uint16> c2t_i1("./Images/smallfake2/c2_t.tif"); cout << "Load complete" << endl; SwiftImage<uint16> c2t_i2 = nwt.process(c2t_i1); cout << "Thresholding complete" << endl; SwiftImage<uint16> c2t_i3 = edm.process(c2t_i2); cout << "EDM complete" << endl; SwiftImage<uint16> c2t_i4 = inv.process(c2t_i3); cout << "INV complete" << endl; SwiftImage<uint16> c2t_i5 = wat.process(c2t_i4); cout << "Wat complete" << endl; SwiftImage<uint16> c2t_i6 = c2t_i2 && c2t_i5; vector<SwiftImageObject<> > c2t_objs1 = segmenter.process(c2t_i6); // Now have c1_objs1 and c2_objs1 for registration vector<vector<SwiftImageObject<> > > a_cycles; a_cycles.push_back(c1a_objs1); a_cycles.push_back(c2a_objs1); vector<vector<SwiftImageObject<> > > t_cycles; t_cycles.push_back(c1t_objs1); t_cycles.push_back(c2t_objs1); ChannelRegistration<> chanreg(c2a_i6.image_width(),c2a_i6.image_height()); vector<vector<SwiftImageCluster<> > > a_clusters = chanreg.process_channel_registration(a_cycles,SwiftImageCluster<>::base_a); vector<vector<SwiftImageCluster<> > > c_clusters = chanreg.process_channel_registration(t_cycles,SwiftImageCluster<>::base_c); vector<vector<SwiftImageCluster<> > > g_clusters = chanreg.process_channel_registration(a_cycles,SwiftImageCluster<>::base_g); vector<vector<SwiftImageCluster<> > > t_clusters = chanreg.process_channel_registration(t_cycles,SwiftImageCluster<>::base_t); CrossChannelRegistration<> crosschanreg(c2a_i6.image_width(),c2a_i6.image_height(),true,3); vector<vector<SwiftImageCluster<> > > all_clusters = crosschanreg.process_crosschannel_registration(a_clusters, c_clusters, g_clusters, t_clusters); for(int n=0;n<all_clusters.size();n++) { ut.test(static_cast<int>(all_clusters[n].size()),2); } ut.test(static_cast<int>(all_clusters.size()),5); // Cluster 1, Cycle 1 ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 1, Cycle 2 ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 2, Cycle 1 ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_a].size()),2); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_g].size()),2); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 2, Cycle 2 ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,6); // Cluster 3, Cycle 1 ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 3, Cycle 2 ut.test(static_cast<int>(all_clusters[2][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[2][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[2][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[2][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 4, Cycle 1 ut.test(static_cast<int>(all_clusters[3][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[3][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[3][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[3][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,8); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[3][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 4, Cycle 2 ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,8); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[3][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); all_clusters = crosschanreg.process_crosschannel_registration_inv(a_clusters, c_clusters, g_clusters, t_clusters); for(int n=0;n<all_clusters.size();n++) { ut.test(static_cast<int>(all_clusters[n].size()),2); } ut.test(static_cast<int>(all_clusters.size()),5); // Cluster 1, Cycle 1 ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[0][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 1, Cycle 2 ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[0][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[0][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 2, Cycle 1 ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_a].size()),2); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_g].size()),2); ut.test(static_cast<int>(all_clusters[1][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_a][1].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,1); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_g][1].pixels[1].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[1][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 2, Cycle 2 ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[1][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,1); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[1][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,6); // Cluster 3, Cycle 1 ut.test(static_cast<int>(all_clusters[4][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[4][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[4][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[4][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[4][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 3, Cycle 2 ut.test(static_cast<int>(all_clusters[4][1].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[4][1].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[4][1].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[4][1].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,1); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,1); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,1); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,1); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,5); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,2); ut.test(all_clusters[4][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 4, Cycle 1 ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_a].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_t].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_g].size()),1); ut.test(static_cast<int>(all_clusters[2][0].features[SwiftImageCluster<>::base_c].size()),1); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,8); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[2][0].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); // Cluster 4, Cycle 2 ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].pos.y,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].pos.y,6); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_a][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].pos.y,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].pos.y,6); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_t][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].pos.y,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].pos.y,6); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_g][0].pixels[1].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].pos.y,5); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[0].length,2); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.x,8); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].pos.y,6); ut.test(all_clusters[2][1].features[SwiftImageCluster<>::base_c][0].pixels[1].length,2); ut.end_test_set(); }
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 s1; LRConcat lr; Transpose t; Invert i; s1.SetInput(reader.GetOutput()); i.SetInput(s1.GetOutput()); lr.SetInput(s1.GetOutput()); lr.SetInput2(i.GetOutput()); t.SetInput(lr.GetOutput()); /* Make the image "finalImage" be the image at the bottom of your pipeline */ Image *finalImage = t.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(); }