From 8175417c23d40a5cb164f9168fa1d83fc218e308 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Wed, 6 Dec 2017 12:31:28 +0100 Subject: [PATCH] Implemented all assignments --- AdvancedVision/FloodFill.cpp | 96 ++++++++++++++------ AdvancedVision/FloodFill.h | 1 + AdvancedVision/allContoursTestprogramma.cpp | 12 +-- AdvancedVision/input/testset3.png | Bin 2029 -> 2714 bytes AdvancedVision/input/testset4.png | Bin 0 -> 1978 bytes AdvancedVision/output/monsters_0.bmp | Bin 0 -> 131382 bytes AdvancedVision/output/monsters_1.bmp | Bin 0 -> 131382 bytes AdvancedVision/output/testset2_0.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_1.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_2.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_3.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_4.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_5.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_6.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset2_7.bmp | Bin 0 -> 33014 bytes AdvancedVision/output/testset3_0.bmp | Bin 0 -> 822 bytes AdvancedVision/output/testset3_1.bmp | Bin 0 -> 822 bytes AdvancedVision/output/testset3_2.bmp | Bin 0 -> 822 bytes AdvancedVision/output/testset3_3.bmp | Bin 0 -> 822 bytes AdvancedVision/output/testset3_4.bmp | Bin 0 -> 822 bytes AdvancedVision/output/testset3_5.bmp | Bin 0 -> 822 bytes 21 files changed, 74 insertions(+), 35 deletions(-) create mode 100644 AdvancedVision/input/testset4.png create mode 100644 AdvancedVision/output/monsters_0.bmp create mode 100644 AdvancedVision/output/monsters_1.bmp create mode 100644 AdvancedVision/output/testset2_0.bmp create mode 100644 AdvancedVision/output/testset2_1.bmp create mode 100644 AdvancedVision/output/testset2_2.bmp create mode 100644 AdvancedVision/output/testset2_3.bmp create mode 100644 AdvancedVision/output/testset2_4.bmp create mode 100644 AdvancedVision/output/testset2_5.bmp create mode 100644 AdvancedVision/output/testset2_6.bmp create mode 100644 AdvancedVision/output/testset2_7.bmp create mode 100644 AdvancedVision/output/testset3_0.bmp create mode 100644 AdvancedVision/output/testset3_1.bmp create mode 100644 AdvancedVision/output/testset3_2.bmp create mode 100644 AdvancedVision/output/testset3_3.bmp create mode 100644 AdvancedVision/output/testset3_4.bmp create mode 100644 AdvancedVision/output/testset3_5.bmp diff --git a/AdvancedVision/FloodFill.cpp b/AdvancedVision/FloodFill.cpp index af3e458..fc0ed55 100644 --- a/AdvancedVision/FloodFill.cpp +++ b/AdvancedVision/FloodFill.cpp @@ -13,10 +13,41 @@ FloodFill::~FloodFill() int FloodFill::enclosedPixels(const vector& contourVec, vector & regionPixels) { + volatile int pointsx[] = { 0, 1, 0, -1 }; + volatile int pointsy[] = { -1, 0, 1, 0 }; + + stack st; + Point p = findStartPoint(contourVec); regionPixels.push_back(p); + st.push(p); - floodfill(contourVec, regionPixels, p); + while (st.size() > 0) + { + Point p = st.top(); + st.pop(); + + for (int i = 0; i < 4; i++) + { + Point check = Point(p.x + pointsx[i], p.y + pointsy[i]); + + if (contains(contourVec, check)) + { + continue; + } + else if (contains(regionPixels, check)) + { + continue; + } + else + { + regionPixels.push_back(check); + st.push(check); + } + } + } + + //floodfill(contourVec, regionPixels, p); return 1; } @@ -24,13 +55,18 @@ int FloodFill::enclosedPixels(const vector& contourVec, vector & r int FloodFill::floodfill(const vector & contourVec, vector & regionPixels, Point &p) { //Check four-connected - int pointsx[] = {0, 1, 0, -1}; - int pointsy[] = {-1, 0, 1, 0}; + volatile int pointsx[] = {0, 1, 0, -1}; + volatile int pointsy[] = {-1, 0, 1, 0}; for (int i = 0; i < 4; i++) { Point check = Point(p.x + pointsx[i], p.y + pointsy[i]); + if (check.y < -200) + { + cin.get(); + } + if (contains(contourVec, check)) { continue; @@ -72,19 +108,23 @@ Point FloodFill::findStartPoint(vector vec) int x1 = 0, x2 = 0; + //Find left point for (int x = minx; x <= maxx; x++) { if (contains(vec, Point(x, centery))) { - if (x1 == 0) - { - x1 = x; - } - else - { - x2 = x; - break; - } + x1 = x; + break; + } + } + + //Find right point + for (int x = maxx; x >= minx; x--) + { + if (contains(vec, Point(x, centery))) + { + x2 = x; + break; } } @@ -114,15 +154,14 @@ int FloodFill::split(const vector> & contours, const Mat &image, s std::string name = base_filename.substr(0, p); vector> regions; - regions.resize(contours.size()); - for (int i = 0; i < contours.size(); i++) + int i = 0; + for (vector contour : contours) { vector temp; - enclosedPixels(contours[i], temp); - regions[i] = temp; + enclosedPixels(contour, temp); + regions.push_back(temp); } - vector> bounds; BoundingBox::allBoundingBoxes(contours, bounds); @@ -140,34 +179,33 @@ int FloodFill::split(const vector> & contours, const Mat &image, s largest.width = width; } - int nr = 0; - //Create every image for (int i = 0; i < contours.size(); i++) { + // Creeer een witte image - IplImage* iplimage = cvCreateImage(cvSize(image.cols, image.rows), IPL_DEPTH_8U, 3); + IplImage* iplimage = cvCreateImage(cvSize(largest.width, largest.height), IPL_DEPTH_8U, 3); Mat resultImage = cvarrToMat(iplimage); resultImage = Scalar(255, 255, 255); + Point center = Point((bounds[i][0].x + bounds[i][2].x) / 2, (bounds[i][0].y + bounds[i][2].y) / 2); + int topx = center.x - (largest.width / 2); + int topy = center.y - (largest.height / 2); + //Kopieren van pixels for (Point p : regions[i]) { - resultImage.at(p) = image.at(p); + resultImage.at(Point(p.x - topx, p.y - topy)) = image.at(p); } for (Point p : contours[i]) { - resultImage.at(p) = image.at(p); + resultImage.at(Point(p.x - topx, p.y - topy)) = image.at(p); } - Point center = Point((bounds[i][0].x + bounds[i][2].x) / 2, (bounds[i][0].y + bounds[i][2].y) / 2); + imshow("Test", resultImage); + waitKey(0); - Rect r = Rect(center.x - (largest.width / 2), center.y - (largest.height / 2), largest.width, largest.height); - Mat roi(resultImage, r); - - imwrite("output/" + name + "_" + to_string(nr) + ".bmp", roi); - - nr++; + imwrite("output/" + name + "_" + to_string(i) + ".bmp", resultImage); } return 1; diff --git a/AdvancedVision/FloodFill.h b/AdvancedVision/FloodFill.h index 33002bd..f487a4b 100644 --- a/AdvancedVision/FloodFill.h +++ b/AdvancedVision/FloodFill.h @@ -5,6 +5,7 @@ #include #include #include +#include using namespace cv; using namespace std; diff --git a/AdvancedVision/allContoursTestprogramma.cpp b/AdvancedVision/allContoursTestprogramma.cpp index 8d372c3..a57a426 100644 --- a/AdvancedVision/allContoursTestprogramma.cpp +++ b/AdvancedVision/allContoursTestprogramma.cpp @@ -94,16 +94,13 @@ int main(int argc, char *argv[]) } */ - /* + cout << "Bounding boxes bepalen..." << endl; vector> bounds; int aantalB = BoundingBox::allBoundingBoxes(contours, bounds); cout << "Aantal gevonden boundaries = " << aantalB << endl; - */ - - //Split images - FloodFill::split(contours, image, argv[1]); + /* cout << "Fill" << endl; @@ -120,9 +117,9 @@ int main(int argc, char *argv[]) // teken de contouren op de witte image drawContours(contourImage, contours, -1, CV_RGB(255, 0, 0)); - /* drawContours(contourImage, bounds, -1, CV_RGB(0, 0, 255)); + /* for (Point p : region) { circle(contourImage, p, 1, CV_RGB(0, 255, 0)); @@ -132,6 +129,9 @@ int main(int argc, char *argv[]) imshow("Found contours", contourImage); waitKey(0); + //Split images + FloodFill::split(contours, image, argv[1]); + //haal bending energy waarde op cout << "Bending Energy" << endl << "-----------" << endl; diff --git a/AdvancedVision/input/testset3.png b/AdvancedVision/input/testset3.png index b29f2dd0fc206b65db5bec2f28878afc72717690..128012b862cd699b030b051036d51671f74aca10 100644 GIT binary patch delta 2682 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 literal 2029 zcmc&!`8yMiAD`wPYair@Fjrf)xe}q|80NlnjwDafoEakuG32Pn zv7E`346`OjGB;oS72o&syxyxdWIVZ$+-_}?kKpK=_oCtP5JqtYmfSe9G@ZtaffBief`Y>N^XFkO7#t2) zR8&MD5J)5vg+eJQDJd%}tEi}`s;a7~sa?EyQC(gA(xpop8XB6KnwKwM*3#0_*4Eb1 z(YbQv%GIk^b#-;GUAv~Ir>C#4Z(v|xXlRH=qm7J=jE#*k7>uc@shOFXg@uKsrKOdX zm9@3Ct*xz{ot=Y&gQKJ4_3PK2ot<4>U2ojD;pXP%?(Xj4;o<4&>Fw?9+A3D z9~2Z692^`H5)v93ip63dJa`Zm78V{J9uW}{85#NL(WB_-=$M$8r%#{aaJaa*xM$Cv zB_t%^@%ZHAC-? z!os4WqT=G>l9G})Z{84z#M08z%F4>Bs;cVhY7&W5Q&Ur0TT3RB>+0(2>+2gD8X6lL z-@kwV;lqcfrl#iR=8qpgwzjrXD3td0_KuE@&d$zHpFZ{U^z`=je*XOV%a<>GeSQ7? z{R0C7gM))qD)sBvuR}va!^6WPBO{}uqhn)Z{5d~APovQm78Vv47nhcn=ydw>@-l4h{|v508$Hj*pK| zZtwp-Tb5TYoRr`RF>$^R0DwRJ16%Li@>?gS7#8h>wY%$!edrbH0|@cDeFuxW4jW-=*jG!)CgfbxLlBR|_M2m)b7t zL=}m&M-Lo#4Bu;OIK1gsR$bBIL~3m33r`Ad} z=f!VJPu3(CEsx>#5LIt754gpsNs}lIxgAC_8sw&C6OXI z8mCh800Odt#*ZXM3o)HU1u9~lE(P{ko93`83b@}U$=oi#7L`JGMY%nH4fnbS#qWan z_t^3S_5|sWmOgc^b$k!nqZ!izsP7al&{z^WytUa7DwuqTYXoVLk5ytMTtGmpK;(?S zL}3L#im>|IPvt=Kbf_ytwvWguR%s&vVo`~{VS->CFD&f|@u9}b)cdIGbD$g;i6i!Y z`$GY)B2{n<4H!iF;xcMA^=UtqLzpJPjs^JDMf zkJQ+z5otPBDfn|gElk}>3fjh*Va1$VhQ+*mE8T^w0mwbZY{>svy11>A5n-N|L2#Tl zfHs8YCg3)asokY$?YjRqwAOZ}b5{jF#BW4OrN~tpvZS3b4UwsE(NG6IusnUG0JsUR?t0{PhxsyulT>zuF?2H}{kRMklea;L)qBD9l%#qcQ zz)d220e+OttnX+!w;yQK*;lAS@}V>&6-m|7f}7hEvdb1!9USdm7u3o5wRD+N;=#=7 zm5Ib~ZtZ354(whq6Rrw!5DxVEW!D}lc&}`mD@c*O{8j8C&IMd4H;ZFi)9PxR@-&rd zJVS6ZZaD(eOqlj)90x-=tsnY@x7jqCBTSumvibIaUeT^SpJdpJ$0(R#XxSX>`v5d diff --git a/AdvancedVision/input/testset4.png b/AdvancedVision/input/testset4.png new file mode 100644 index 0000000000000000000000000000000000000000..1cbd11bec12e2e76fd1fbdd76a48cba6f5a54d24 GIT binary patch literal 1978 zcmd5+_ct2~1C3dmM(kFJ6}4xLDkVgCRuIIi@foGYr^IagsK(x-D4w=<(^~QDrj!~_ zjHYI5?-et|44?iN-#zEvd(Qp&-kV@)4r6B#WB~vG>~Lc!;@Xw3sm?@qt+)WK*Vjh> z_@UWD0H7|7^}>|_0H6a{{$XQyozu|J(9+V<(b3V<(=#wIFfuaUxN(DtiHVt+nT3Ug zm6er^jg5nYgOih!i;D{g1afn8gFql29v)s^UOqlPetv!d0RcflK_MZbTeoiAzI|I* zSoqGJJEEeZU@%xrOiWx{TtY%ZQc_Y%N(usjNJ~r0$jHdb%F4;f$;-={ zDJv_hsHmu_s;a4}sjI8syLV4RLqk(jQ%g%rTU-17{rfsPIu9N^(ACw|)6>(}*EcXQ zfI^{0Mn*6g3=W5zn3$NFnwpuJnVXwiSXfwES|Sh#Yiny;TU#U&X=i8W;Nals==kW- zBWGu47Z(>dH#ZLt4^K}|FE1}&Utd2zzkq;%z`(%Z;NY;Zu<-Ekh=_>i&!0y|Mn*+N zy?psHIyxGI!NkPG#KpxWCMG5&B_$^(r=+B$rlzK)rKP8*XJlk#W@ct(Wo2h)=j7z% z=H}+*<>lw+7Zel}78Vv26%`j3mz0#0mX?;4m6ey5W3kweA3s)ARaIA4*VNS1*4Eb5 z)!}fs`uh5YhK9z*#-^sG=H}*>mX_AmRy-cx-rnBP(ed@`*Urw)uCA`0o}S*`-oCy* z0)a3vFfcecI5adgJUsmU`*$LdI5ILaIyyQwHa0#!J~1&dIXU_B=g(iieoakHO;1nH z%*@Qr&d$xv&Cky-EG#T8E-o!CEiW&xtgNiAuCA@Et*@_dY;0_9ZfczAepbVQ+0j*pK|PEJlwPtVTI&d<*;E-t84>gDC-)z#H? zyZ+B{R^Rn|8_WU54nY6_N9S+S@IXwWu0sK|p*`CAzn4`c!_mbUjopd=lj?=mR0vIHFTS$^4T zJmjvakBMAET!s!*OpVwt0!6SAU1P&%sLn?-=cH#h7z4%>s=oLP>YS6P)Pa_@*`Q(3 z%ZW2x5xi7uggNCXd^|X?uccxOdD~FC`TbujocUG_yy@7vGxNm52@&0=+Q)yUg>>ek zTqs4hx}f^xEb!JpmM6%DMipxmT(?|@$lr&Sc|(EAf0>T>o-R%+jc}J3ff-Z73xc8k z_RfiYpx6yX@@|kE(qnYfG-D7Mh&3!0L9j!&`aD|9l4&JL zq(V4=o|x=h)$zAkCs-r9h`Nms3^Yc_c_Cwf@wfi%_3RLnYE`YQvt!p`zStz^I}zVWVV) zkZwv-qTlF$1!$PpBm>fmU2IZC#Do z2^d{@R$7kFZkI=Rv(nQ0l$c{{I)(ES2_z@@k{5BLo8Wn2Evbjy0BX9TYW4LCECy** zjydJRisGCZ?X06n%zm9mW};3#`)Wde40=n)PmnLBUImUs-sGMEe=}OePbVEi$@{(| z4s4mP-#=gBB2vIC_>RwV2Rfm{;3pkDV9aE%frg;N@U%|CDqCQv?F>UfyiJcGf5Fob z<{fW#j%1ArcQ*HjqRJ~`=|$@AhieTbvho_(z$30#WvNCSW?Y!NLxH}K*nis|$Ef>T z_<=GDYv_qArp<5M@o24;9X}A*IdSA!j*^Ln-$BNU7V@XVdxRDkFN9N|QnkI3Nc9oU zNc)U)X`a5!gC!Rc>|57UQa&WjP3jUOUn*X)ms#%VL~uZcet#m|&>UK=?-Kn#g#~pD literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/monsters_0.bmp b/AdvancedVision/output/monsters_0.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d714072681f1f7bcd17822ecae477bd563403e74 GIT binary patch literal 131382 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 z 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 literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_0.bmp b/AdvancedVision/output/testset2_0.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aec70258dec916317763c2eae6da6e3aac36f6b4 GIT binary patch literal 33014 zcmeI)p^q9t6bA5Zf}8 zhQ64eED6ld{A2>M(UyPaClip3w)`_cnSgAx<)8V<1Z1Nv|IAM&ARBG@XMX=9aJ$`p z7B-Bn6a(OUH{5qZY zuk1%v)!^4^wW1moO-}E}j0ae5zgSg)qKtcetlRBU)(@`ND?c76DgEM>R9+{T<3B#X z-EQZIndvZ@A45r{)bcR-@l*x;32FRhvzdR?JUu!5*s22l>qFo-7!3U5W$PK+kFcat zYKfxy(N+cg3FG-CfCuJCe&kgF?)*yz56ta$yWaYNimHHr{-I}Geu}CBe16B{u~bls zI)~3cbya~lNKqLf&Fm$G)nbP@oMn{VZxij@cEa|FdB{CTSC>3*X4(KlzvE~ zczJ8|!&K>&1MBs}Z2SGbctv#`t=$h3UM`npwuUkM@;RH$rmj?b8f`p3%#7>LPlHnQ zU{pU$u6=hM+Yj@r-dz*;Aq2hGOE~-xh0?++jUNKpY&MEsIr31M{1A(}Ps)(_AsqZ- zlA_%;pI;u4mclEmAL3H6H6->!Xq-QL@c1If?T6@w!{KARZ1?H?5a4t=Wn;U?qrnd` zlKkM+o$Y={i66q`{A#rxKSWCSA%0bUd9YNwYwY%&gnn1qou{d=1JCYSryrJrWOuFB z4}=VbSIvGPj9z$E?gzs8e16}J)qh979|%!+#aEeq8r}`!iz&{AcRcv0gipil&c^rp z>kOHygZasp!~D!oCLkMa`DcDI0oiEFKl76b$VOZKnV(ERHrn#f{A2>M(UyPaClip3 G&a&Tj!9D2! literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_1.bmp b/AdvancedVision/output/testset2_1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..07ff760eb3b66d385e14aaf2e35ec2f90154de87 GIT binary patch literal 33014 zcmeI4uTLZ~6vy`x1OkCTAP@)y0)ZeG1cF=;2rfY&5C{axkqZK`Vg(78AP@)y0)asA zKc3~jw+)loo&I?3d;PI9orGbw)4sm<>Fad*YkvIv`)4#gzT>=&zu)-#g}-m3b)5Cb zXFV7MMk7Yzn)I{s<2ga)SNZV>@KRU*tNeHbc&Ur`zvt)Y+uK{7kr7ju%@6R@OKY(R z3+C6rD;Z&_{N~^li?B$3T6kq5ERUZBUV#V;Dr+Q-Moj-9ar((-$Mf9HUqr$s5nA~q{GEx)CuB{~CU%-7e~ zSyQ9@O2{uIJg`T0QHae7O~r3zWrgWa0m%~}Ou{bpAAeac^FIQ=NMi$1<#2gmQBcXxME2&MT+nHXD+RPRod z-}3TuY`dl8OTAai@!QzgkTNcfoVB$zek~T_x4*xi#%S4Gc6WD~2qpMkU0unVl~UUI z`8fw6o8Q~pTS{|duwX-jzg3K<^Y!(Lro4Rb*Tzr({rzT)Lb z2y071`7K00!?$n(`X!UbKFzjv0s;}Xv zr>D+ZOy)O)W~1u}Li~=7j=Hjk5aOKjr1{?vP?>D}`1r7RA%Wk{&W=g;5W?*}5(2*= zK(gD&@V{bL64))4y=z&u;PSs=HoIN?CKt5w>%rVcmqb{IX^zCoZ?LZ|UB*~WrgcFp zzgl_QApQBZQ`c)xeyH)4S)0IkJnkYi*I)FW+o|g{S_2<`J)YzU^976@`|umcP&1t+ zhChAy(FG4DrVl?XX&4R|qNP6kFz!HHS7To(t?oOz_DVr){QMYV|)P%3Fn-j|t^PXsWyf|I6rt4Lnu$ z84)T4v}c$9A<@aniPOEsBh10eh!FiSEjblP;D?BbCqlIFav`+9!z~)W>+5TA4>Jk0 zz)O$NxjT-=4~nO0NSyFeBE-TUm7V2G<_8(EcWYr!jz!bCTbSFA`cxr)GRB7=EQs_m zA&>~$P#;g9x#BYY^yC)WxptPypJHAP_aQ-VPep99eXYXaeO7}GW>A{&mk z8>cU#?S|USe1-TmTHuj}4kMn9SiXP*Mqt_?s>3x|YcDYBfX{o2UdQ(!ma!&KOO;I>gs=$ACCYpb@ji>k4J!)dNle6XiYTr literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_2.bmp b/AdvancedVision/output/testset2_2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..32cbc132de978d5998aeba61fca2f126d172d8bb GIT binary patch literal 33014 zcmeI)OOE0&5C-6k#F7JWgjuqh1I)h9(NdqHZ!in)I$NfMC4`vRDZ5_3AC_VPp`7xU zLc~Jk_s8Gw?a_Ww|C6>a+CFLfv0bR&Z}-&%0^24CUZMBpCo6*GH@M%QN0Uv`FdDo5 z$S!^9(E~#S!O*~dPdsEoRKGVoSVBm@T|7)eJih`SAR(CFAs!kbk{=TfiV()H3J-@6 z!><7kgb={584rOl+V6I|B?d`Pg9w%oqR?o+)9ECUOR+SF2tg1W>ZgJiOBm;;h!;p0 z=%w_ zO=#(NKA%(i2t6euSmtI!&HSM7(h0O6wDAMPGa@wbgT=ET)b<0%QzumQ>jF=gP|vR; zJVin!zwYp~2sQjV#Zw^^`*n>cCzSaOfF~pr_zi<6A#C-#T=M@YN%?fx)1KstDPBQ{nLmd43b(F$o!d)8cUmkNhUbJ0vXn zExhDMJyGmlLFfGz-V?7-g&Du=_4*dQo{|8uyj5YwkKVQF@2zBZKf-yxMfmEsi$_F7 zzeSh`b9fBDMOeV&`OQpN#$)@pSLQboA=Ls+r=cCK-wuZypbDGu2uJKkV{}a@!Bg_)^{$pPtp(!3s&c%<86GCW>=ji88=z!;=kDi2=!O^JXHDpd7vyJ0=!_TV zXF=$X7wV@=7=jn=r$rcr2jI8v|4b)A*4F*UWquUhOh|#^gNp|6TK^s<*+3YMN0Wl_ zqg<*85%9qL_=F&Mczzs096U(BG9eTms$Y%}4G-Awe?mY!Y`<4ROgwnMLoxHk)3k6Ex()$@Ac)!bIQGI+x`K0(Z4qU literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_3.bmp b/AdvancedVision/output/testset2_3.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e5e38b8e12379224fa2a4db6f2db2f583c80b9c0 GIT binary patch literal 33014 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 Rrk|;bDs9Z%j|V%M{0GtF{r&&| literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_5.bmp b/AdvancedVision/output/testset2_5.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a034d1de859e0315eb5716f05b0551b59e0aa00a GIT binary patch literal 33014 zcmeI*u}&i~5C-6!L_xs=;3xAkGW-L{1d)hgwJx?xmJekovDPDdx4=F&h|?>7xNI^jH* zTEa@ddBAZAbGcLz*7)TDj!0O}MNTO8D+e5lP?C#~Q08}ieVv3>Yhl=iD;=we1TUp2 z$wlC|-|tu1raMT&vM_4d#o*ZgYngkfv*rtDvfC&{Jg*M=tvOYx}cqzy0S0*73z zyq^Xy8leWSOqlW06De|3Ql^)nCoqVVP) zI(vS8w#b#WiFgKn!3nu|Hhy6V>3C*-0SPVeEd4?e8sQoH1tGM< zv-j&xXo~0J*OBmeJR-Vjq250iMv8gBy^UM#?eX!kFdo(>FF%aelh6kbNjdtt5xU{I z`#BJL;`Q(|C3MC+`9VNeeAhpW)%q&pJOzFItnt!KjVGa_pAVihp_iX0o+qJ;pFf@( zp}k)(yhM079CR1hmDa|7een_@#;}5**lg(+0neJy%r6d}DWQ#DG(0;(1HYJfMucp? z$aofnRKNImbV8n=5gwjTmXhYy7_H*2<)bOd&j|0~;Q>QM&BY_mLWZ9yUOLoa2^oGC zlOxT%kMktzEL8hh{Ooj&7j_ov{5gn(M3kW=+oVr{QBah;amJDzk#scF9Kd1!b-n5ctHqj{G#DSAQbz>#OqEd^NWnv zmr&prAFm_fn%^jRy$FkbW8rln%==m3;mL9-OVir();i;7f#>-MN;kqKztQnLPvn^& zz5$_sH20i&)0M$u7JmAMXy%9b+_1gy5+wIQsF0Z+AG}}kBNFz-;}XvC@_rP;2zV^Q zMZBV)k}wXQo-l{E=GROZ4NpT@z!Ug25XQu7BP`>|{Hh2e`2n}17X BNRCAkdc6X*fmLEU=`!oCe`HsJv`2CIFU--|FgW!gvM6D*2)FntP1` zKnW96^0PN;G{l7cy^HnndwhJf{BY14P(r^x1CNi7hx{%sE)p(uE!M|xd3kxrPkA7t zkKYiUIYy7}+QwqamGOIhef9aRt*yme=vtwX@5Ec8BP4Qx3?qwQ1tZl)Tx;T)oS7w zhlkRQjg6oqoeCz!4+uM93aV9O(f$2>vi(8e@bEC`OOFCI{Py?vDf}SQ15;3^8grJG zmWceWuC9XaG%rxYj|dN9Al)2OP@xWf&(F_vevo{5c?o*dwm=6zXUsIoa&vRDEvBG0 z9sDrWmSpA#1U+h7po5>ohH`pzbkvsAxHbj+-rwITzRQQJ!j`1xSyS1@1FmY1t-;{3L@wp@?ep3i2-Z52A&;$xdESYaA5kY2R1vf}g0CloQ@?(WWL?8*;=$q^e_ zMaZB-y^K{)QW&?3VbIi-AAQU;=~f#7f9SCvzmJcPHcpq)GP)kSK0l0g;%MX9SUv+f8V5!zSrSBu-)SGvWpF)1>X)1>$jvh@bfoRxNgSuC@W zVH8Um8=ZU@f-53^Mi1_}6HQsrg#@TZKa#=E)Q3?$`=w6epzOk}Y<`AfXy2bUqQy6X z72*eq*nprsWvQ_byBt5$5D~>|Yjdy%_i5zy#=^3HOY<|x zGb}4upfH3KIj+Xf=)~JcG&IB_q4Frj%KVJZ{6$vzUjkNHj{?ZN*n}T!9DT7yJ{5Wm z1!LwR@>cwylkRIJ$)Vq+j$82~ZcnX5&QyDPdRhvbt)~?~4QU>tKe!PB_AN=(Fy-IWOm~$&cH4{W!$| z!#ZWn7_e#{3RmNY%};cG@i=8@FZY<3vQ%C_&b1oy^bnU4rw9zNAEBfyVjHTpKP2ds z_Q#4-EE2&%^7}+6DX6v@KMFiqoFeejek78z$X?Ffk6%ulVtEJ-A}NcYwmST&4C|Ej6sf?^ znV;wtr?8lbg)8tIcHZuBiWm&>gQfWm$4t4;GNQ?<#7grs{|NwbiY%Q}#fD-`X?}SA XYmQSWNLVtZ`As5DVG)W8&t`uCV;Oq6 literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset2_7.bmp b/AdvancedVision/output/testset2_7.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9913eefdb0a91f98b1f296e42319d5e2445697d9 GIT binary patch literal 33014 zcmeI(uWuqz5C`zR1c^W(5Xg!O^aX(+)m&0hfvh`nK_Kv4fZ1lpd(HQ6d4cYQl5e9%x&6=QP5rPymqLjoYJ8fNpD6tH`+aAA4WgH_iu}3451Vu& zlnA2+iK_F%l5Gzq@~9EV@AdVy)t_S2Pr?WX)#nfUJU%|Qln|8*ow#Ws{IK?D#Qy_- ztG1|_Q<0Ac^23H!nb^AINHsIV`K{M$wp4pRK(#e0@*jos!=Cr|@BeAX{tb1?h3aPp z^}|;7LrLSPK|+T1vmZ(tM~x(Y*u-)u(L{|@e%QxmC{ad@gnl+di85*=^ut!xLWw?V zr1isY}MgAgo+xZdSpNBnKzUKj2fBzux+kT z5;kh&^E(_4S$+{>U$W_dgYiGVmttqLSz&LL=BQKq2K9rN_GUX z7ujy`!GwOO{psl`0U>q??!+ya)(=(04khuT21%IQ4^>1xf@GKR26Onu3nfvb2KgrB z@IxV!$t3tG#F}J_Q3o^mp{KB+Btg_5--mpD$Kx^J5yWa_f3XMi`JuD(`l>%?~A z*3asPq6UM3k`OC!%_SJm?RP$(m3~+uffKhyZa>te2_-3`21#hZ4|O#QC5fYkVLz1C z;8RRClz7m_`9ss2&E_gX%uh^3ZfC|1)yYFimZ)Lg4+Tm>Nv^2T20uwC$rUx);D;LP zLrKP{(GowD$%T@VK-2G%u+^nMb59)X%cmMzZ literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset3_0.bmp b/AdvancedVision/output/testset3_0.bmp new file mode 100644 index 0000000000000000000000000000000000000000..33b322c2ef75c43c88b946a9d9ba93e12f65b9ed GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mS@3EC9re3=%*RJNSf~Nk1-v^K~WFzG)*U9;kuL%T9DOaR}9f*0o8&~&-@0TdWM$| zavuQoK-B+J`iEaJNS5g}Ts>jM5LcOj&DTQ;K)4@qFhK5Mdrz$S3@<_IWk@ssPSG87 z^I6`4f=>;@9C=v!(Ls{p`V3MG0mxqC_y`n(hyTs0oByrg#0fQh^z%o{V%sVWW|_TkkwyutN+8`gsC1V@?SIrVhddT63@JM3^D&1 zlKwL|W7i@U3e*Bs@7w#HA>l7W@Gpjp{|qr-7#y%`k&FPUKRIdB2cV4%q2C$e|1x<0 zU`YSZ5C{~(ss&>Hv)D;L85}<_#Q$ON{?Fj^ks$@EtNtq`!rlKevLC4OD?{pkh7d66 zi)Q|R`8b68!JdB=*7u(w;0r_Ye}=GM435a^|I5Xqg%5=LE~pz>8HD{`Itn5SB;oFX zi~RTRL)P+NDiR@uRXtGJy9;Wvco?!`ARCMMU==Ss8$OAlq#TGwT!-G0juBm AlmGw# literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset3_2.bmp b/AdvancedVision/output/testset3_2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dd41b51a655ffb08561f20ba236bbe58b94c5fa1 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mS@3EC9re3=%*RJNStZM{-D(kQo<1N3!>1FjKy>)-UG@|dzd+P$cl>7vhq`C^wQKNj0Wxa# z-h|p4^~b#bD^Pve($xr;g#Ebk-~rGsI9PG+96~nqJH&kbp8pJyzaiq&&t8Qq2AZF< z`7TsFIIJ+;&y)Fo@7c3Jm4E*JU2yIKL(D&jdWa#I>Or#MKSc}w3FJUkLPYSXhX*VY xBWmU;pcWMKBYr^)VM&CBA<%6=pxX2w=qiX5vU-RJR2*zFvIu_lm@3Iu4*N<-i2{Zyt1j1EQ`_I7eo0Ib& znk+8$4Gp(|>Ve4G`Y*B;Tp^z}hj0MW#WSKwOks0XTHVfhDC&&`c+6@K+>Y)~s& zT24T$z@uJR7^>LK4elJE2=?$%Q31IGh;(%kih(Sw>aDGzCQC`7D8{NjJp45S!!Mx8 zJUj?*!nL89Us(wac4lTQiZRUx`UZ@C!wp1ZAe+z13RL_9sJ@`!KAJK(7p`7b7Gm;` ifPe>ZSxg38Jx~g0vZ*Pi5)=_+^$7{5QRJ|3fa(G26m60K literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset3_4.bmp b/AdvancedVision/output/testset3_4.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c3842c56319a80ea1bb1707be9cd12b57925294f GIT binary patch literal 822 zcmZ{iK~BRk5Ji8eBHBV|DWORk2o!-@Hn7VE2_g1ef!lBfj=*(Tvf%(60HRXr;oELf zD@jMTGaA4DJ#q5*ly_hv=Q`&ca1J>=#9Z4$L}J0Q8O*oEi2-Oqz`~&*QeG=hL)Iy= zJo9jcP$B$6u&7I}3>=xY;wc$@;P4j%;n+yV2D>yX8JE|mlrM55-i;*elSN7%er8M< zHJ%mja)Fc{Doj@`0Ar1s#8f^{{C}z zW?)M0BqPKA#|qgW9oDB*e7s7zYum_|NoAOR LwEoTAZ58tWLC_h0 literal 0 HcmV?d00001 diff --git a/AdvancedVision/output/testset3_5.bmp b/AdvancedVision/output/testset3_5.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2169c904029253f5a2a6b2ddd447667517224fe8 GIT binary patch literal 822 zcmd6lF$x1A5JgucU=h$V*x6YMfvqLhDYwlD_5hwj@8Cr@f3v|Al_cBc!wlb