From b71f4a16e68bfbd864ef7357e3146fd4c12e8a01 Mon Sep 17 00:00:00 2001 From: s224361 <s224361@dtu.dk> Date: Mon, 20 Jan 2025 13:37:27 +0100 Subject: [PATCH] Fixed module referencing --- .../advancedSettingsWidget.cpython-310.pyc | Bin 5054 -> 5610 bytes .../circle_edge_kernel.cpython-310.pyc | Bin 1017 -> 1054 bytes .../compute_cost_image.cpython-310.pyc | Bin 872 -> 1398 bytes .../compute_disk_size.cpython-310.pyc | Bin 411 -> 763 bytes .../__pycache__/load_image.cpython-310.pyc | Bin 331 -> 624 bytes .../__pycache__/mainWindow.cpython-310.pyc | Bin 6552 -> 8075 bytes .../preprocess_image.cpython-310.pyc | Bin 529 -> 1051 bytes modules/advancedSettingsWidget.py | 3 +- modules/circleEditorGraphicsView.py | 3 +- modules/export_path.py | 0 modules/find_path.py | 23 +++------- modules/imageGraphicsView.py | 42 +++++++++--------- modules/mainWindow.py | 3 +- modules/panZoomGraphicsView.py | 14 +++--- 14 files changed, 36 insertions(+), 52 deletions(-) delete mode 100644 modules/export_path.py diff --git a/modules/__pycache__/advancedSettingsWidget.cpython-310.pyc b/modules/__pycache__/advancedSettingsWidget.cpython-310.pyc index 7236b63a0e28e1ce6261fd142586150be4764839..4f03c691e60160520c3edbe98a564f1e6e0c39f7 100644 GIT binary patch delta 2326 zcmZ`*>u=js6!-Njj`L32^pP&}#>N)9b}tn+*sJTFJld7+A(@KE&An~iI(E2r+BM2H z!3q-y4Q*EfA%WEV2T0=+f=R$vzVOu&65`{;UjP!~TsP}V(IWY0pNG%+-E+@9&f|Sg zhSFXtr3>)O9=$)mHt--lh;BX@8og9Ym<c3c0ZUG@mNHY(v+ShJ4CoXmTg#cbNT)ja zT9?^{go^@>VQo#o8j<cwW;d3ng>wACr`PXDVQlJ(eY0lOLv`wM&6+2nJ~h4It(;#b zZcs*{I2BC5O@GU>-5a)xy%mtO$$DUWuH{rYy{*4kNASOa2O^jV3#N#XDdC-1A~KeV zLezd?PQEA1A*|fN>RQT-;TX~8#7L##_*&A8Z_(&D0U8}AacWI46F7}Ca8KeaNzI8k zhx2Q)neIqkxErJl?jhO594>I2lW{NZ18p7~cp%ajNf#a@-E%7L+JQ@JirI5dkOi{< zMcEY=SUX-2n?JKQ`ih+s_xFT}8mzst5-mPd>lTH|Fh@K*iCRKM!W`v5xhvd~TEe>8 zlG+FfK@4O$(6D%y+v6=^F}|p;C*Yps_LjV!;yNs0sV#xOhGq7rxNBU(N+f5o8oin8 zc;>Lu@yrKZi`|i}2O{*W7x><`MTp6zUL0drq#cvWW}JBBJJ5+Ufc5{yDZ-mYh@;>{ zCr%OKC=pL?8N>?vUfQu&--y|g)=MpU!@9l`N9&2!uLN0~V*f}tP?}wrD|-<XG}A2U zM&~!~xqd(!)xe`8o61Mu$+r<oK02;WBb{cUZD<aFwPPo5+^@bmbIm8zpQ+g^joFz= zmz<;aGBJjYbCz4P=#p<-B}=aDFA?LK3l{3z0SRWNm$=)kNAb+)h~bkO@dH9<rt73? zTh2r6c%~0>@I3wuKvHIxwBtx*A82Dzs1Wu;yu^Of=1?y?7auB>!G(@+c!|RS4#OM{ z0=&aMi!Y&N_ILauyPzM1SDN~+{=?k7&HD)GEcUHFjS$lk2LX>Ih6bTXm={WHj&0WD zZ8GdvEr+o4`jMhe2jIm}jWn3<<AUtlO+u6G<HXCUB2Tp+pe)fc`z0}0iU>Yqc@%6m zTz&~amzkP$CO0yUZ)O~~9EV_IWr4Uxus{q7EkEn67=brG?+|0Q5d@xV*uGJ9?CKK1 z&-QPkEYf~<J6YHpm1$e<osjYt&n*I^<z|_U<@@?Px3Uqq(#aDl%a+q1?2qKw9SMpd zZz;xhYL4v^!>@T>uwc9MhVR&zP)@DpEpH{(%)a?w&;5U)@<dsoyMam=^GR@(+ze<x zmvoztzRI#qR#+vq<3O~OSHQBd+0SbE0_g6-<;wuwavn7g@fES3Qr1}oh^x)lo?FwZ z=LXdBgXdFb<#h4gV-R_wEYm%3r^h)&6f=!FwgOUl8insRH*%Jt4%<?%ICjkrwlm%f z_D|sQRRB$9?erlOvUqkU`!zk)b7qt6wJ3bF`7A3IV@6aGpZ%CQGRGT`Mt#P62}&4c zKFPJG08F(yTdCVOO|9zr0e{*?B7907+kV}#R{e+Yme0R!x|~L;sG=llz6gW2mwlAY z=0nM%l%582s8SL%sLMXj?uwy?Kvj&`<LuC=xFpa$SZcxe#ppxvgy3o|sU`ObErnwd zhH)UTD`1zf+?HT8!(e5l+~{SsIl8%K7)UTO0>d)gMy<YTKw4`RdL9&=ui}<IpU*uR ze*eoa-aAPVFr#@!a`i-1h_hTi&3@07w;#PTVEGy@pH~oyzb}7YD<k-zUMTmn<^0H< z6zFN118*qGrxHzY;G>1|i9vbEDL+S{WJ3e-4y1fj>1D2qxj14?$G9ZVdY(h$+<Jz~ zsY<2lSiWB+j#H^@*_CKC4GS>EXa*d4O1}W02{IZ~@~`JrP1Cy5YC2ZXb|)gAat|wY zz0r#3naL}wQ^DxSR50#Q7(_gm64fwbW$OHsx$$>_@+F39uv&-Hy0KKAaSNBt(-mqb aY94Ml<P@*4&&#q04p|au&>u<EE&dCWSS1$# delta 1745 zcmZ8h&2JM&6rb5IuXopu?KmGKBw1(**(QXKlD1G%5v2vCsv;r^h?R@kc$Rp>de@y@ z6JnV{MG%KdmBJjVN<BEIQuT;>LmYbSpRh<=D<QQ~uT`b?&Bg_kk>)pVX5Ra~nfKnz z%jsu_^I<NhA!uKWe!KR3cssuzSGK3;W-ua%h`!!1Y$KH=KWFF9BO()J3lYT??~8UH zkuD-Dv;Fw;h>&DfE_k;aPBT$fmKx5QYvDv#iI;2J#qwS5Ao2lRWMhJCfnZxCgAdUS zOhh7WWo;>yIk{@fshlAy$O_34Z422Mq7wr~mE=es#w_V01sF9_BqbPiGDON`U<=#E zLnI+P2L~HY1{cUJC#bO>^@7m;jU5(#P@;O+@(KG@upWuWGpK{AB0=l}aSUU2S)9-X zBJ7A5#VQfmJ@LSpK%{hDAo6_-+Qp94&2`Xvkw`>f&%~i6g=BUF3{2|--65jv;9Yrr zxU0k3zI488GXOUKv#BZDNRMp<t|_o_X=qd;T90iM*rXoYXm>x6*ad0q?d&c?N9>Mw zdb`~TqI11izK`z6ae)}@k#q&;*h{G@BM3zPNg#iPvHs)_<su%i^@igG)eSEo;YOk~ z9qI-#`&6Ajc(r!Aaw&3YR9UQ3FN!@UsC?{3H{-BbS$Be#L)i=UR9`<NvdA-90WdH- zls$zdc0Iem9%t|260@{va}u@^*}VnS^bp8&ii5@B9RQnA?Iv!s7utC-Y*BX2I3bF( z#IEWG_RVmmJvOtjcAYW(B1Y_Y{V3p&F?|T`Mxg(Mmo1GBfJ&l7HOF@eJ;*0g<h5O@ zv!9Lka)X@oEdWcTlk87p|9E<!*QYuPdv)m1IDm%PRL(yS-1Hc?5oj5PBp-)sYrb2h z5Wm%M!@`tbbN6bmnMPo36M7^7<Z;_#+l5hfDxYV|`Gq4qAL4Sm@R=95X4DA7xb6jO z=G5QVvSd02CP^l8<ImmOF)g!y^E0!%p}ghzEqAXge%20mB>|Li3Ac}>&S>AYcex{Z zc?~w8T|L{@7DLE|6UF9KTbw;{gPw$SOQI7n&^ZoecD68dGQHCKFi*6a?=`Ew*YM)K zj!oFV2R%{%RLs699AnQ5D|a7jX0I(eJ|x0i-8A2*HZu-Q>fWGkR5#<gYsMR)>G97Z zGQA*Oanc71hD|4M{n=M^SKPzCZ$@!Q!K&^yOeZpXA5JvGR|1oSW=cWbBWV?I%4(}g zoY<}U&Z_H2Qx>ZgPYm)(p=m+zq(jvCm2LL4Ffnf{wbg3VyKSqrFp9af=jKUYkCAv$ z(|0zb2VfiVA5@dsU&Z6>Wa&T#wGdU{SE-by=kQHLCyCI3UxuIu!Wk5(9kC+~qmImR z6x|VHsVl?2K*SyKjtG*(o|fiHki6o{BVT|2-Iwzeg9Dmlr~8{aKWrj8l+x4emwsz+ z9e)Vh+t4FkhLD+m`ajWjix{7?@@%O*dzZi8^c7P6tSAox<=T{&6E!)^bKq1-u3D}6 zP88K#->+8Rh(`KC(+6#Uo(?_YF;$U-^RlsID5|O!RZ*2xxnxkTV-=FV3!5u!YT(=@ z+W;w^n_Y<)A*Ga?CvwngG&kuY$f^Dt&R)H)L_O08Ny~RX;vq=`KZy#GfmK|V{sVj| Bl{EkW diff --git a/modules/__pycache__/circle_edge_kernel.cpython-310.pyc b/modules/__pycache__/circle_edge_kernel.cpython-310.pyc index ee86e4ef66d3ce22af22a0a8c402d0374cd819a3..c67506850ab1a7de874c025489ddea0b3ce36235 100644 GIT binary patch delta 478 zcmYjOJxe4(5bcloavVYB6fZf4%QnzN++aA4J5(@IWEEi<IYzr&+L`HHs%Jd*5-%_^ z5Onf``vv}=NsWw+P6V%84Yr`)t5@}k>Zbqse}aqQ%uGm3%&uJzN{5hpD<;D?;+r|T zYd{b|3(}{CS;0!)=ah&k;eaDt;NW~D!UKBdo_fL;!KK^x1nrSd_+VzqPKUO^?x>PO zl@$-JskGi={zJ=O(0Z5&S!=^k)u?Xv{?fyn$E$_!IM7KLzsH+7Y3^uu+LqpilE!5l za}zE=1x3=_vZD~qlL*>f%?n#jKbYj{>Lf`IG@wpP`LjMwcNJ`+JcoEC-po{)VXotS z$d%MN#0ScBP|FIcw3l1k@eoD2z8Y&NL05ojZv-bYE1E67ePP$>B?Cbev3c(Bh)47j z4d^UmzuB|n;i74F7;-~99lv!|U5>_R|Dg4%@kpuxGAp=LRqHE}A!g&(DYUnrfCXy{ VzLY~z7x0xDr9;nPKqC5?{Ra|_c0B+9 delta 448 zcmYjOze@u#6i)8i^Qctt2UfR?9@M3SLJ<+#K?)W{>QGK3G^ss%O^)OaJZC2dp&Tv_ zqND$Ye}qF;r~U~#`FaPX5AwZy@4b94FL`r+S1x3=T0vmb-RIla5<)+7vTQbx6Igm1 zfFXuM)W@vMY*u>2eT(5s<T*3Qq3)~<IDPrRU)dpkYMfI=Cp_j#R|wet!g4yk(ZK^J zO%jMW4?s!wjSq;TEJ!pYhM}Z!oyaH-q@dxVsAjb~%Zh~@SAvIds?jDQnM5g}O3{?a zA<-imak5u5tdqif3%Rj%ePx^?YMi1w@LbP011?|!gHwa=O^F3M{zPg6=KSjonto5i zbbf23ARbWRx49n2GV<@JNT|xr?9<ix`{^A3cRhQzYn?6FdX}=lbv@gZ^UEp+sG6s8 Z?IqZRm~oFLk|iNO#=tcE5^~X+^$(#Pafbi^ diff --git a/modules/__pycache__/compute_cost_image.cpython-310.pyc b/modules/__pycache__/compute_cost_image.cpython-310.pyc index e755561615f0c50661393a5a4e40992dd71e5376..95190d238dbe08bed73ccd6573db4a551e4bc73c 100644 GIT binary patch literal 1398 zcmZWpOOGQp5bk$(I>}6ScpiO1inQc_#ASqdXjj_Xf|wl%wIW5Hwv#dOqh-4TSvn{7 zgf#pHIC9|!^$l@A^A|W#c4x>49JyS!%UxApeHAsGmH~`w^z)`ogWylMc|69j`5dO% zfgk}1c_6|n44oeFNW@j_^_V9jsS>XzJQZn`dOhWt$g0fi8P7#t<zCNuQH{tGQqq!) z>6lDlPU(c4(b2clbxF?2>`hvok^Cx{U)+Q5U>^2qjiua!Qr1fD6yMR02<)EJN;Ivd zE5ginW!P)#Ot`{i#RT5C-K^2H(W<7#{Cjp$GhK7KqGUr?TdF1HFYjaU^w$q>|Ni2S z*Ka=SlLp({e%u<WR~i%6nm#pbBQQk3S+n9yFxzLE+E&XtabX_E1lA1ZGnnQZ5H{$- zAHzdp!!Cd|wNaOLQ5Tc&E<R*7?lL&dyZlhtq)SM27am47?TT(hVv>;bE;*E4`Aha| z(3S58Bzr43jJq+QlVcqQL5W~I8*o7OmZDl2i+uWMtu(@D!**02Ph470kxL5=X+1?) z5~Lc-l*Al0SYtsg)n?&8?8O&)V=lese7R3tqF3O_X~-(?_2`gsIy`iikI)+)3@(vc z`zNkwCu5K9U}h}Dgf&5g?ihBF`AlBm))<B*GD0bP%jD+t`c#zR6TUwF6%fX1Y%G|c z0$r3oov(fQ9_8k;dW0V~0N=}2e6>edYrG%)%_HrKtfwI6VU-Qcs}cjq^~suXK9BlD zC_?+<Mzt=L{k@~eJlAf~&~AZt9MO>zxf70leJt?z^NDtisa^k_{6Nb*P`pY#*41Qy zfjX{ls*&#yua-AVf=jPw1HIw;*f*pvT!QZMw?MxGPX7L>zFb}dBg|5;@7kN?my$l$ zz!~%*dXA;QdTY=tx|I+BMb{E;v|*Oo<<-`i-6&0#A1{!hf*N4X@~WXV!+hIn)0!oK zUjz0l(?Y9I@S#Y{VSQ-bV>HmMi)P<n{Qr0aF`5ey#k7de;v!DsGMt68IEnOoa17-r zVA0NQeqNoMt;c7vrr3G(7z0=}YxWBu8L-@g{ohi!D)gyr1w;|arjL!)eaxio(>45~ n*gkiK1QK|s9=S*2UH7{9WJvB)Xv@INKum&3`0y*j52Akngkgx( delta 343 zcmeyy^@2@1pO=@50SJ~!^`)<5W?*;>;vfT{7=r^47l%#M_TlGA;Y{IbVT|HP;SOfd z<ej)IlkX)+#q(;Bb?y(VTI?tLFjg@8X);YVWEAGsWQ=0VjxWxvO1(8Xh}l!~7E3{5 zNk$ZRX>n>%d{JUbW@&K|$o3*`AQ8oxl35H>y_;E^@z&($%<}4DK&fA$$yPC;KuyIl z&KX6S#U+`Ec`+`j#n~nK1u<EPd8LU(lap9H+&F-0i-mv$2NMS~A2SCt3o{p^0HXji z3saE<P#Ea0B9NLQP9UMl8O2|motc}Mo~oCYnpjd=lv>0D6u&k3J&T$ZSbY)5awI|= dB+X%yo1apelWNBZ<Q4M)2_6O>Mi}H{0ssd{Pt^bb diff --git a/modules/__pycache__/compute_disk_size.cpython-310.pyc b/modules/__pycache__/compute_disk_size.cpython-310.pyc index 3383772746e94d58575ed8f6aec432708e812f0e..74bb861cd1ee382b9360c0e67aaeb9ed7d1c8fde 100644 GIT binary patch literal 763 zcmZWmO>Yx15cTe6(=;Inq)JGLgAb@u4&+jCiBM_Po<Sn*rCMp_*ptM{u6N}RLaN^2 z!iC=eM}7u>W3L=g&fGX4#@<Q|Fp|d}dpz^rn`$`h6SN0MpBCRDLcaT8*Y+?t!DXJJ z6GTJ>xr#(jBoK=ZBqD`)-W6T3_aVLNh-gYi`&-N;uYMc_`}wjNI0HJ@Oh{*%`>r;e z6_C#vx0P<X8m!Zb$Ntl;`E!cv43{}XXNiqI$2XCP4#*8TAR>N5zF_ni@wCx<-#NMd z-KS`0RarX=)GmP<c@4ChhqI7oMQufAKoOFlQiW??8B1l!7C?FU$*io@xF2er>V=tv zldrtPWI`{ne9OvLs^vQ<%=j+#FP?37%bCtLbiI^(c?T+>T+5;e*xH}s7Qve!&<+US z_g`9V->p|}i(^DBnnWtw#HwyO9Aq(yb%OW0gYGNQ1KfUn<df_YXJfKbuH7tqt>9eC zw?LoKbEZnBSB74|N}+5(FBQIMBQ4l$y7FnWN{j6Im>MX-SkT$D1}<5#a@shPS<Sdq zi`+OIFkp{LxB~Z9W61q9a?fL2Z<>ey-Fmdf^En*oA#S5c`)HIlsd8n#(fb(b9=ax- c7ZtN1D-hdp_xyYBMcez>D`UI@J@O>}1I>NYbN~PV delta 232 zcmey(I-5B(pO=@50SInM^rg=P(vLwLWWWsMH~?|67?4O|NMX!jh+<4(O<_)9X<>|F zN?{CU&}4fFlw<IFZVU#W?I(7)G5SqD$0+N5i@UTqwJ5$QF(tFKIEt^dpg1`(CpA7T zF}WnaXeC1tCs5z7kYuZvP@uBn80U<l%;J*F#Jm`n)Z*-t{DPRQ#JtkPqRAml0fvl4 n+(6Zuj73Z!iuo36UTJPYWf2>Y2bKXFhD2~pe#j)j#K!~x=F>RW diff --git a/modules/__pycache__/load_image.cpython-310.pyc b/modules/__pycache__/load_image.cpython-310.pyc index 4e867587aa08a678807752452ad7df52ecea128e..5c6ee3dd5ebe526caf9fb5f8b9be6b2cd426e502 100644 GIT binary patch literal 624 zcmY*W&2AGx44(aITCJ3d6Gt>h_CO8@E)haRO^c8UNJ)DjS}B_DINM=&XCr&IC>1Bf znP-3_&jC-dS5CYFCp?>q1WRL&$M*Nx<7PNa1j~;nUy8Fph+p2>mzbRweCPoyEp$+c zh0q}cI@0kf)(3j<IbMW1n2YrAH|K~qUA$KAx*H(47VYiOw)J{5vRWakP0l3$#NR!^ z2_HIU<;2(EBkT9!w~zsY+n<SKId7CEsjM`$DnPEVsinIHNo&Z>%7B(DQ-Sof(pXtA z59Nwq>PEvT=`ki)(73;O#6I;QIZVg$f{}LhuIZtBrn}NvKgeG7e-mv1DsGYc*iqjB zc(OF=qWtFZVqj_nr5E>Jy`G&;rpuSJ$-DW<<oq-ZFy!gK3p`-+=Tkn;E(wsb+I(oQ zvbPqdXl_70l2c`Cg(b-gD6OFq<fY{Zl5ya&dFj)x8r0d-ktC>r9AGy0-=wOtMQSN? zsB&YACAGXBV2(z&6<a^Sa@+NK(<M7M^4szK9Vd9mCXLW9t&8~k`iH*jJvH#rqi0*- N=YGlL3y#G7@GsNzsl@;Q delta 170 zcmeysa+=92pO=@50SLZG^reRZ>Bk@rGGGF79Dul31W2SXq%h_%L@}f=r7*WJL@}l? z1~X`~yadWH_)RR-<Mh*HzQvqeW^`+EE~B);EtZ1Bl8luMMXW&iU%ts!F`>n&Ma41B y8AX}JC7FqNF)pda*(Lb}F<FUurHMt8-!MAyG8VA|RckU8fh?Zvz@*2-!vp}$LMO%m diff --git a/modules/__pycache__/mainWindow.cpython-310.pyc b/modules/__pycache__/mainWindow.cpython-310.pyc index f202a4a0c3b8081acdb334f6de92fcb4b3009718..77bebf01c39d59ee355b75213eb3c29101613278 100644 GIT binary patch literal 8075 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 delta 3039 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 diff --git a/modules/__pycache__/preprocess_image.cpython-310.pyc b/modules/__pycache__/preprocess_image.cpython-310.pyc index 32055ff7fcd436221cc6f7f3293f35ea7f856c72..942e404cc02a826f3db27aa44723851cb69d573d 100644 GIT binary patch literal 1051 zcmZuw&2AGh5cd8hX-G<iI3pj41W^$np$PG#R;suFBCU|3NRhLiY|QR@7u#D%2)7<M z0Pn$tm*6e-hB%<U0v8zXrcFUuvOWHpneY2N&br+;!S?OW=jf$J$Pc@?*tT%-2)n+A z11H=`Na~Cn$J%b<rryXyyUPRK;7#y(3j)5y8?zQ~^GheesKGl!(%U{oZ_;zhR>TUe z1(Vi>w|S-u1*e#p{Cs!y>%sTs$-^=bDT`p)mU&-trW9M0ffiB9%66EDe3FP%n6jb3 z6iSBH_pAkI_}KTb>uWd|^2%9}mCKz^?t9O;D{tj+7j1v#BP@@7bO>ovY|j<sDhokt zYUV(N%nL&+AauH*EYFjLkP)2=ZL&zQl)~$RC1S~p$RuTw(}OiLs?#hpbG+SeSD_!P zNDnH@CaPi%==C+V-he*2kjrFr3UrMGc>mn35&+$1Nyf|#n&mbxOVE92FgsJ6ayS+> zoLQzeaAHsrl0Mys87mSbrRnWW+>N6D4Zeqh=azUSI<<krOd7?sp&;i>hLD0Ze?{Nz z@7}5tyr`aNO@2*yKo3#h{9JC}wIsDi&rvOWH=LSw@|1nv^2%Clm@v+A)K(ki+Vem) zaH{TBexsdA-pLt8;AN+N4&W1!Mqh~Ppu?{Z;b45ELFsWS-W1dEGYR`j90R>c_nAzY ziZwliSPC5jJ(75$v@l@C!`NP%W{QvR_Nhkl+JG7la|i`X;zH>{k5QfwHJj)HD-<wC z#)|~!4Qa%JCEm{$<<7sGwuZI+lYYl{8oxWf@2YKFKJB^6*0!=2dd<;g9oIo-B0&hc q5~OUdcWd1|Ax#-nB~!(y$X^(`7^-aDukk&=uRyfbvqL%#_5J|SC^4@9 delta 235 zcmbQuF_A?(pO=@50SE*o`_hvb85kaeILLq*$Z-JTVzr6dGW;AVtSM|Qj8QBp?7<A0 zoD(y&Cmytu@Y7_x#g&|sSrDI-nVVSx<gpfKrspP3p2wubcZ)SMH!(f6h#hE15!>W5 zOls=fK<2ODWUH9a;?$zz80U<l%;J*F#Jm`n)Z*-t{DPRQ#JtkPqRD>DF3Kz*yV-yQ u9}^EV3sVs<km;w%R0I+)Vg(YKtdn;#tB8Rmia;hK5j>OsGfOe?F#!O(STjxl diff --git a/modules/advancedSettingsWidget.py b/modules/advancedSettingsWidget.py index 8983d37..065a8e2 100644 --- a/modules/advancedSettingsWidget.py +++ b/modules/advancedSettingsWidget.py @@ -5,7 +5,6 @@ from PyQt5.QtWidgets import ( from PyQt5.QtGui import QPixmap, QImage, QShowEvent from PyQt5.QtCore import Qt import numpy as np -from mainWindow import MainWindow from typing import Optional class AdvancedSettingsWidget(QWidget): @@ -14,7 +13,7 @@ class AdvancedSettingsWidget(QWidget): plus two image previews (contrasted-blurred and cost). The images maintain aspect ratio upon resize. """ - def __init__(self, main_window: MainWindow, parent: Optional[QWidget] = None): + def __init__(self, main_window, parent: Optional[QWidget] = None): """ Constructor. """ diff --git a/modules/circleEditorGraphicsView.py b/modules/circleEditorGraphicsView.py index 5134f53..efa7448 100644 --- a/modules/circleEditorGraphicsView.py +++ b/modules/circleEditorGraphicsView.py @@ -3,12 +3,11 @@ from panZoomGraphicsView import PanZoomGraphicsView from PyQt5.QtCore import Qt from PyQt5.QtGui import QMouseEvent, QWheelEvent from draggableCircleItem import DraggableCircleItem -from circleEditorWidget import CircleEditorWidget from typing import Optional # A specialized PanZoomGraphicsView for the circle editor (disk size calibration) class CircleEditorGraphicsView(PanZoomGraphicsView): - def __init__(self, circle_editor_widget: CircleEditorWidget, parent: Optional[QWidget] = None): + def __init__(self, circle_editor_widget, parent: Optional[QWidget] = None): """ Constructor. """ diff --git a/modules/export_path.py b/modules/export_path.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/find_path.py b/modules/find_path.py index 4ae9c7f..426563d 100644 --- a/modules/find_path.py +++ b/modules/find_path.py @@ -1,30 +1,17 @@ from skimage.graph import route_through_array -def find_path(cost_image: "numpy.ndarray", points: list) -> list: - """ - Find the optimal path through a cost image between two points. +def find_path(cost_image, points): - Parameters: - cost_image (numpy.ndarray): A 2D array representing the cost of traversing each pixel. - points (list): A list containing two tuples, each representing the - (row, column) coordinates of the seed and target points. - - Returns: - list: A list of (row, column) tuples representing the path from the seed to the target point. - - Raises: - ValueError: If the points list does not contain exactly two points. - """ if len(points) != 2: raise ValueError("Points should be a list of 2 points: seed and target.") seed_rc, target_rc = points path_rc, cost = route_through_array( - cost_image, - start=seed_rc, - end=target_rc, + cost_image, + start=seed_rc, + end=target_rc, fully_connected=True ) - return path_rc + return path_rc \ No newline at end of file diff --git a/modules/imageGraphicsView.py b/modules/imageGraphicsView.py index 1855d71..1fe7394 100644 --- a/modules/imageGraphicsView.py +++ b/modules/imageGraphicsView.py @@ -1,8 +1,8 @@ -import math from scipy.signal import savgol_filter from PyQt5.QtWidgets import QGraphicsScene, QGraphicsPixmapItem from PyQt5.QtGui import QPixmap, QColor from PyQt5.QtCore import Qt, QRectF, QPoint +import math import numpy as np from panZoomGraphicsView import PanZoomGraphicsView from labeledPointItem import LabeledPointItem @@ -27,10 +27,10 @@ class ImageGraphicsView(PanZoomGraphicsView): self.image_item = QGraphicsPixmapItem() self.scene.addItem(self.image_item) - self.anchor_points = [] - self.point_items = [] - self.full_path_points = [] - self._full_path_xy = [] + self.anchor_points = [] + self.point_items = [] + self.full_path_points = [] + self._full_path_xy = [] self.dot_radius = 4 self.path_radius = 1 @@ -139,7 +139,7 @@ class ImageGraphicsView(PanZoomGraphicsView): self._rebuild_full_path() def _insert_anchor_between_subpath(self, x_new: float, y_new: float ): - """Insert an anchor point between existing anchor points.""" + """Insert an anchor point between existing anchor points.""" # If somehow we have no path yet # If somehow we have no path yet if not self._full_path_xy: self._insert_anchor_point(-1, x_new, y_new) @@ -174,23 +174,23 @@ class ImageGraphicsView(PanZoomGraphicsView): # Walk left left_anchor_pt = None - i_l = best_idx - while i_l >= 0: - px, py = self._full_path_xy[i_l] + iL = best_idx + while iL >= 0: + px, py = self._full_path_xy[iL] if is_anchor((px, py)): left_anchor_pt = (px, py) break - i_l -= 1 + iL -= 1 # Walk right right_anchor_pt = None - i_r = best_idx - while i_r < len(self._full_path_xy): - px, py = self._full_path_xy[i_r] + iR = best_idx + while iR < len(self._full_path_xy): + px, py = self._full_path_xy[iR] if is_anchor((px, py)): right_anchor_pt = (px, py) break - i_r += 1 + iR += 1 # If we can't find distinct anchors on left & right, # just insert before E. @@ -342,7 +342,7 @@ class ImageGraphicsView(PanZoomGraphicsView): # -------------------------------------------------------------------- # MOUSE EVENTS # -------------------------------------------------------------------- - def mouse_press_event(self, event): + def mousePressEvent(self, event): """Handle mouse press events for dragging a point or adding a point.""" if event.button() == Qt.LeftButton: self._mouse_pressed = True @@ -362,9 +362,9 @@ class ImageGraphicsView(PanZoomGraphicsView): elif event.button() == Qt.RightButton: self._remove_point_by_click(event.pos()) - super().mouse_press_event(event) + super().mousePressEvent(event) - def mouse_move_event(self, event): + def mouseMoveEvent(self, event): """Handle mouse move events for dragging a point or dragging the view""" if self._dragging_idx is not None: scene_pos = self.mapToScene(event.pos()) @@ -390,11 +390,11 @@ class ImageGraphicsView(PanZoomGraphicsView): if dist > self._drag_threshold: self._was_dragging = True - super().mouse_move_event(event) + super().mouseMoveEvent(event) - def mouse_release_event(self, event): + def mouseReleaseEvent(self, event): """Handle mouse release events for dragging a point or adding a point.""" - super().mouse_release_event(event) + super().mouseReleaseEvent(event) if event.button() == Qt.LeftButton and self._mouse_pressed: self._mouse_pressed = False self.setCursor(Qt.ArrowCursor) @@ -489,4 +489,4 @@ class ImageGraphicsView(PanZoomGraphicsView): def get_full_path_xy(self): """Returns the entire path as a list of (x, y) coordinates.""" - return self._full_path_xy + return self._full_path_xy \ No newline at end of file diff --git a/modules/mainWindow.py b/modules/mainWindow.py index cf5039e..1612778 100644 --- a/modules/mainWindow.py +++ b/modules/mainWindow.py @@ -4,8 +4,7 @@ from PyQt5.QtWidgets import ( QMainWindow, QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QFileDialog ) -from PyQt5.QtGui import QPixmap, QImage -from PyQt5.QtCore import QCloseEvent +from PyQt5.QtGui import QPixmap, QImage, QCloseEvent from compute_cost_image import compute_cost_image from preprocess_image import preprocess_image from advancedSettingsWidget import AdvancedSettingsWidget diff --git a/modules/panZoomGraphicsView.py b/modules/panZoomGraphicsView.py index dc86430..5adb46f 100644 --- a/modules/panZoomGraphicsView.py +++ b/modules/panZoomGraphicsView.py @@ -15,7 +15,7 @@ class PanZoomGraphicsView(QGraphicsView): # Expands layout self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) - def wheel_event(self, event): + def wheelEvent(self, event): """ Zoom in/out with mouse wheel. """ zoom_in_factor = 1.25 zoom_out_factor = 1 / zoom_in_factor @@ -25,25 +25,25 @@ class PanZoomGraphicsView(QGraphicsView): self.scale(zoom_out_factor, zoom_out_factor) event.accept() - def mouse_press_event(self, event): + def mousePressEvent(self, event): """ If left button: Start panning (unless overridden). """ if event.button() == Qt.LeftButton: self._panning = True self._pan_start = event.pos() self.setCursor(Qt.ClosedHandCursor) - super().mouse_press_event(event) + super().mousePressEvent(event) - def mouse_move_event(self, event): + def mouseMoveEvent(self, event): """ If panning, translate the scene. """ if self._panning and self._pan_start is not None: delta = event.pos() - self._pan_start self._pan_start = event.pos() self.translate(delta.x(), delta.y()) - super().mouse_move_event(event) + super().mouseMoveEvent(event) - def mouse_release_event(self, event): + def mouseReleaseEvent(self, event): """ End panning. """ if event.button() == Qt.LeftButton: self._panning = False self.setCursor(Qt.ArrowCursor) - super().mouse_release_event(event) + super().mouseReleaseEvent(event) -- GitLab