From d1f4ac859decdb7d337ed46c77d570fceee00a73 Mon Sep 17 00:00:00 2001 From: moonanjum26 Date: Fri, 10 Aug 2018 11:46:55 +0530 Subject: [PATCH] python --- src/python/0.jpg | Bin 7125 -> 0 bytes src/python/pyuic5.bat | 1 - src/python/slide_scanner_gui.py | 399 --------- src/python/slide_scanner_test.py | 419 ---------- src/python/slide_scanner_test.pyc | Bin 11967 -> 0 bytes src/python/slide_scanner_test.qml | 111 --- src/python/slide_scanner_test.qmlproject | 20 - src/python/slide_scanner_test.ui | 986 ----------------------- src/python/toQImage.py | 27 - src/python/toQImage.pyc | Bin 1307 -> 0 bytes 10 files changed, 1963 deletions(-) delete mode 100644 src/python/0.jpg delete mode 100644 src/python/pyuic5.bat delete mode 100644 src/python/slide_scanner_gui.py delete mode 100644 src/python/slide_scanner_test.py delete mode 100644 src/python/slide_scanner_test.pyc delete mode 100644 src/python/slide_scanner_test.qml delete mode 100644 src/python/slide_scanner_test.qmlproject delete mode 100644 src/python/slide_scanner_test.ui delete mode 100644 src/python/toQImage.py delete mode 100644 src/python/toQImage.pyc diff --git a/src/python/0.jpg b/src/python/0.jpg deleted file mode 100644 index d1de1d897ba2c5646447083addbaf7d9fabc5a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7125 zcmb7JcQhPM*IrRp?~7npSt+7~=+UCCC=tE)1WO3f`wtPKljyNJtF2&_5G{HqTCBRd zC3=na$@`x3e&_w`JKvr8XU^Pt&Ye4VW}dlo^Xq02K&`6$Tp56ehX7?~L8 znP}-j^nXF{@NdTu5RwoQlF(C-QPBUt<)#%tLk#Ev^x)%h0`Ab@;nU#VbO68rJix7K zx90vwh=7E|cmyQ)cW%37sR4NS_;`c_L?m~J@c$~^s^3n5h6qT@At*;or)5RYDeoGb z0D?Zzw$7<+8|4xrQFxb_i+vTc_v03T6%T+%_}3f%E4RamfOqhSZ+k^(ZsG6X69WHw z=3g5Bf~O(mkRzfM)Uu-EyoIhD&1u6zpX||d3CV-Bf8JmKE`-J4~!JSiK*Ozl{Xza7|hkTTdI2K&5 z&R}I0(OH&^oSq(tc4FwfDB)23Fy%S4YRSJZGylh&096Xdv0lmc>v%d=sL$*X+oR!c zPKf)77&5nfFc&g#_fk1X?|p{jX)hS31f$-g`Sj%Ld^fq37lrx3XCWT~ ze_B(>76~4n88r3R6fC_YB#eyA2xrt)Kli@)fNN_(U)Q+xz8x(Cep2F=y-rfl(gO2R zrNde1)meu8V)0>-B{jAqIDS-sNYijZ?uxni^T&Hq&F}$lO4c^pA5uF3eRlk#OBG@s z3g645%W4yg>L~g(zIVG6)|wW)6^Eyuv@9t^uz^0b1Vw}`S+cwyJ<=^=wXo1XuRj+F zZYde(GS5V`v;JNtK9-qM@XTU#^io_Oq1$pSk3#-lM)$trk4b*WGFqPFb2$*z0{?wg zu`w_Gbi%4$2ua;f)@-#BsAimnucql+k?1#MXUVh`z6GJnN*&7SVCc7`3FB%NW2 z!`D&SHz1bbvZ}zJC7q^VK~qSec`Pf&Qqt9$9;0#aCx-rz1@zd;B4a!mPoap}va&fx z!!MMcXz68Tt*x^1rjggYAF{QQCNa3bS;*&&!hL1J_dAS)VGzh3kcA>yF+4 zzG;EpWt>>iFp!zdQ>45YS7WKO`$XO4Pu6frq#Br~OJ#3dIpsU`Qb+a=6F8jVAZa=6 zlrl?%Qc*4VRj`<%Qa8t^R_`PnxlCN+pjf`iQRiAi)?M1MnKeJ+eF8BuD%YAx zBU}KaIWhM`cF-q1y4;`(Q@rP*hO=JAi<*&oBYj=F68ThwlZuKZN)qMW+c}ugqbe=? za#v%E7fZjK>LSBkqYvH)i66dI{(i9HZ5bnOq3U2%TEbaW6n0EEfMs>*_;D)Tu_!F; z%7tJeeN5B7*kLL7LW(l`kkp2>11C@tEF!VbOw&_gJM{>)z3^%>-S4$$AK2|>FUmDq z?(V%YIU=GJH(7DFZkqP^R<493`--gfXa$};N=g7`Ie5=PW310EEb&`GK`RRcnxm+w z@_;xZLO$B*e%Vj^{*UnXd`IgWfZIQ^$$I1!;1cEa4NR`|N2u%RTdGy9K5S_4FS@C1 z5EX=L9PNJbSu5Z*w~%%>0uSXiuzaE&MmI^pS&Ki?eNn3P@akppaTb;b5E1ENkj#8? zIWE}5JbO7Q^6Iey$YwCuX1qgone3ex%l!%g-*SHgyW>*k3|lR|dGD8xGJw4t0~%i%!}*V#nRalw zRC9;$wXro~9`PtP$1guv$E+DPPDGWHrA)!3hr4Jmo4%$@opGE7$HFXn#j?3DQlUjl zaUKP{?CFlf*smufip2OyoscjaFOsRW5x5z1V^}IDFnm5RqijCJCx@mNM)z2x4S$cZ zrif?R(ms(pQQ^al)UX2WFEoFbW~MGKm!qY9x0bsh7>%UumWK8;mlsaV7FuJ42v!m2 zHp_ZkROh{tF(r{7%ewol!XsinyIv_N+L{3Iq>Uikp}v#31nqXerdl4v*Mzj)XY-No zX*v_^G8z~Ur9J>9_*?y+{yO2XosSk>MdAzzUr%heN&D3YU(ke(Wqd>YV^Tr~#yl{f z(^PeW6dCwarf>Bcih8|H3lG*ae9RxJe2Hj)54uM4Yk|P_5x3#R$w^(Ao<4mv7}6Xa zP;Bk;_RqJt0Ya1_wF(r7lx7%4sK#Q+wp3VmbIx+T0er3ATGdnU>w|LyP5XIirli+(Ty=*( z5-$7AWHM;*u(?KfHy@$$iph_X^qhxDjFA+jRK>&SAH^4`H8vqz)xj;Tey0%F5=#Wg+0~=Xycj&x0D%XrXa$$QDLy7%5r@XUY zWdJW(uN&K74zTng$sGplJ$>i0=u7jG(@94IWcuQRmFMT3M3e(}h8BL=T7|WHVJUjc zgb=*eZwC4?qd$076tM?ILQ~oI*!O|KMjorNKO~=7c(MiV!qrN*^&S&7jGtl?-50D* zxbQ2WJxAU77g8AMaEGVPh|{7{6C>DTAbKy6aXI>(Sca*T43s^jlGTPVgEaBdMvCg! z@u`KprHLGo5V++{UR2<6>d92vCzJr=!_vsfh=})`oE(2ojN2uxH!RmE${w#xvoAV+ zew-Iio-FlF_G*lWH>&X4fQy?(gsF5)LP0Dep`+g9gwE@V^jMV4j(05a225T`&P*v_ zOXDt4Y0la&$6VmIEVg|wtZa&ivZ>PqLrE{(VaZ*n%VkaS7y=zMw=ZSU9k>CwEXiz% zcRXZMysU;V26n*4@|2AK; zKdC_$_iYd#b{a%|X>Jy<>De%Sf5*9`LJ~JfZZXjN`@R4O}i2qR)STwMz3!Gt452(b2}{|NZp@r zy_T1I6&M~ZI}W{m@AED6#OPyABEkU1Lk1ZO`Po7WPh+Zs}kmrz9(M#B3d;uli6c0{A`?UYISU6Ub|a6GZpJuh6zG}K*N zA`WhYaapUk3|*A}6~;92hcip7%P!m#u?QrQPLs;KETZtJFD$5AEbg%I{X-h{TKDsW z*3-MGelNvxZ{hv;CB23){Ms~58Rlf7=~jxyt~PN>h$$m`{gE!0jre7 zYX)5;2xvN}y;pr7O!J^!Fip{$7sm?9Wp#=q3A55qY1*6EqFtyUR_$r{_b|Kw?fI(D zULvdwv50wA(ZOVlj*$a%`@#*tAZR9MYj?TZI>9xmZ+P;{f1eU&j!CuYzhU?IO!*Kb zKnC$Zo7QvG&&P7?v;3wbSnDUc<~1WC%;qp%c{3d+S1iA@{blAQGJSeF=e43{tg@)e zJelbfd59FTZr6xA8TxS0gG{Zw!mDh^_Kt5*QR^jX?TEE>d2Yt3z0b8Cl8V0?Hia?0(}f#9<2M$Nuk> zC_DTk-4$Xb{CGoUZOXf*oezq09agtbWuV z(q8Uvz`H$(u%iA$}Ew>O1M`MS(uwS zP=Ivejb);3kUm&&;i5`EB11j@+AlKMsge2k9-S49zmWcs@+?h1!Q^v4}++Lny?}y?x63Phb36=kunHK9W|; zL$;!C>VqGWpWTn%b=%YX<8Sy}d*dEU1Nre*ZnY+1sB>*qi&oW-{`cButW%QpR`Xrr z@hXdy;>%fgD*aR|7ak{bvsam2$7BF;>G&Ejs>*pgzMkR7k>h_J^)=obdW2;Cp z!f4*OK+4*lAb#UIi1WULEi~YrcOQpviITnFDqB-e!JQRs4y+o2LT5=(=;Hd?`c7qd*M% zYwVn}UDJ9$l_s&?l0fJyV)3v*Iy(jh|qjYXn-~o-#wH~ z`qUOdlAlm5<~sO*Um@AQ#>jE-yD8EFB2(Fnwrf4}_j%Nyq2U;L3d){Tc79?USO zE^}Gj@QB2?9h32nl&FQ~<4?*Ci!>9qI_le0W{B#bu#clpYrz(;V~ZQhN^I|H z5udOvNyQ1?0Muku0H6Aaca?W?z|%$}$P!NO0`prcV;%PrbHBg^yd#DUn)6;gTnWHM zxv8-lV;dG-DXm^I7FDTr`Ym726vfv;SUMkeWQ1(ya%$bLFz*zzGx3u%vZ9=O z?IEJa(;cxB)xFMSo>UzF72l&jcAv<*FDc2H<|PZkyr^K^g!;yspo*m#i)Khecs%_(%r zJ1I<}GGf((#Kcb7j&g9TS74Dh8h%gudF-qA%?!c^Hs;?VyrzbyJw#%9Po{AeDw4nE zBr($nudh#B{12CMMKiAS3a?O3~ggqwvWPq02vzF@LJx#u2yayiEYh^)asCW8;?{mTAcnUt*Bz32<_ zSGeGp5&(yYAM=Ct?$%Ji)V!LWY&wUI=9h;h>MO%aL7Ft|ZzIHkGOyhO6H1Qo6*iyz zq50G#e6ilR&?Q#qV+S@+EhHNMu`$r8Ta7MqH?}|4)}+}3&LLhELltmnz|n@y!bxWpu^PgRNz}d?40Xe_!?Eh zp0;-^^{ire8gWgXvQqX!Oig{S0@iS5uP}9niKAnewLPMyJb>4&UoQ;9pVwdn$MFy! zVY*+~Aadb;b5pNkmIBHWhQ(KkO~U$0wzP4P-xj30F+Qs+QowkF2@i6yN8H7B&PPH5 zmF@k#S_b`6lRRI>-L8Sec{`~D_N>0D&1=aSD2B@mee2YWSRD?bR2_$D26Q&_PTOB@?;)^zXF{(%U zT^S}8>X+9aH@UTOm7M3nz{q0GYc?kCmh9H{o%CLx1A4v`YkW zSwV9$N|t)_cSFm$l(!@inS=MaGptJugeyBygeV{Z#LA^Gr4*n4Sw93?4EDXv=_124 zc*ozRu0?n4j~t(Rmy!#KYNddT(t+}B*g+e9cSz#=f#7jDYxAC=jH+$}=%j1hR%LJ6 z_e?@nL3Gz+mR>|j<}~1oJ_XF9@Uv|}Hj&hm25NOpDg1E#Ea*AtUgCp}gDG@PdyYjI z7iErOLXPpi6s?Z>S%FPnQY@bvtAN}d&mPLmEEj$ZmE7ouZ(#(cUE7x17KW9y=lDRL z4tbhJ_&M?KhHt5q4|OupCM|En-<8b$_xq41ubQD1=Q&ztB=SZxPIcy$&dCP4)`lOa*T1V@5NFiB_zndYtP$AQTNARA?#aH3O;RPAwB`o9!rflD@{LdKL zQxZ(?&VbQ(?xvIYG%+MKyX2kdortVI8F`WrTUg++B0(!Vb@;nvwARt~Re3^K#h_+&m|^d~9lS1AwpYacGS4(f^cx%Tksxs0n&Dmy}&%-SSE-{apaF zu|w@qdldLUN>(HkHJx-~%T!d|;CU_)d(K)OYHFog%~)*50wTLlsCv!FHk9K?a6#ET zv_1B6m_%lvv#~`ARj%B2{F!{-srhaTxd-q3IW5CD_8lT7w~U!e;UHD=HPWo3u_rF9 z=vb0vqRKaM6BE9SbffAC=SK%1j$=%k3&*&iHvmpU46xhBS(%Qc-?OkLv|;ipPzUzL z1AlOSolP^W2-NgNWDY8p=3G>QO=K^%g7#DXXf^c&mhoUcq-{STiz6=hcV?v*cU{i- z*3=0~MQiH=*U;x|pF>aBs9YP(_t#_?5hCEou crude_max_var: - crude_max_var = crude_curr_var - crude_loc_max_var = crude_curr_loc - crude_curr_loc = crude_curr_loc + crude_step_count - self.gotoZ(crude_curr_loc) - time.sleep(0.175) - self.gotoZ(crude_loc_max_var) - # Fine-crude AF - Z_travel_for_crude = 1000; crude_step_count = 50; - crude_loc_max_var = 0; crude_max_var = 0 - crude_pulse_count = Z_travel_for_crude / crude_step_count; - crude_start_loc = self.currzpos - (Z_travel_for_crude/2); - self.gotoZ(crude_start_loc); - crude_curr_loc = crude_start_loc; - for i in range(int(crude_pulse_count)): - snapshot = self.data - crude_curr_var = np.var(cv2.filter2D(snapshot,-1,kernel)) - print(crude_curr_var,'||',self.currzpos) - if crude_curr_var > crude_max_var: - crude_max_var = crude_curr_var - crude_loc_max_var = crude_curr_loc - crude_curr_loc = crude_curr_loc + crude_step_count - self.gotoZ(crude_curr_loc) - time.sleep(0.075) - self.gotoZ(crude_loc_max_var) - # Fine AF - Z_travel_for_crude = 120; crude_step_count = 5; - crude_loc_max_var = 0;crude_max_var = 0 - crude_pulse_count = Z_travel_for_crude / crude_step_count; - crude_start_loc = self.currzpos - (Z_travel_for_crude/2); - self.gotoZ(crude_start_loc); - crude_curr_loc = crude_start_loc; - for i in range(int(crude_pulse_count)): - snapshot = self.data - crude_curr_var = np.var(snapshot) - print(crude_curr_var,'||',self.currzpos) - if crude_curr_var > crude_max_var: - crude_max_var = crude_curr_var - crude_loc_max_var = crude_curr_loc - crude_curr_loc = crude_curr_loc + crude_step_count - self.gotoZ(crude_curr_loc) - time.sleep(0.025) - self.gotoZ(crude_loc_max_var) - ts_stop = time.time() - print('time taken for autofocusing:'+str(ts_stop-ts_start)+' secs') - - def parameter(self): - image = self.data - img = cv2.medianBlur(image,5) - cimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) - circles = cv2.HoughCircles(cimg,cv2.HOUGH_GRADIENT,1,35,param1=50,param2=30,minRadius=10,maxRadius=45) - area = 0 - try: - circles = np.uint16(np.around(circles));#print('No.of Circles:',len(circles[0,:])) - for i in circles[0,:]: - # Total area - area = area + (3.1415 * i[2] * i[2]) - except: - print("No circles detected") - ret,im_th = cv2.threshold(cimg,np.average(cimg),255,cv2.THRESH_BINARY_INV) - foreground_area = np.count_nonzero(im_th) - param = area/foreground_area - if(param == 0): - return (foreground_area/(1280*1024)) - return param - - def focus(self,travel,step_count): - ts_start = time.time() - # FineCrude - Z_travel_for_crude = travel; crude_step_count = step_count; - crude_loc_max_var = 0; crude_max_var = 0 - crude_pulse_count = Z_travel_for_crude / crude_step_count; - crude_start_loc = self.currzpos - (Z_travel_for_crude/2); - self.gotoZ(crude_start_loc); - crude_curr_loc = crude_start_loc; - kernel = np.ones((5,5),np.float32)/9 - for i in range(int(crude_pulse_count)): - snapshot = self.data - crude_curr_var = np.var(cv2.filter2D(snapshot,-1,kernel)) - #print(crude_curr_var,'||',self.currzpos) - if crude_curr_var > crude_max_var: - crude_max_var = crude_curr_var - crude_loc_max_var = crude_curr_loc - crude_curr_loc = crude_curr_loc + crude_step_count - self.gotoZ(crude_curr_loc) - time.sleep(0.075) - self.gotoZ(crude_loc_max_var) - # Fine AF - Z_travel_for_crude = step_count*2; crude_step_count = 3; - crude_loc_max_var = 0;crude_max_var = 0 - crude_pulse_count = Z_travel_for_crude / crude_step_count; - crude_start_loc = self.currzpos - (Z_travel_for_crude/2); - self.gotoZ(crude_start_loc); - crude_curr_loc = crude_start_loc; - for i in range(int(crude_pulse_count)): - snapshot = self.data - crude_curr_var = np.var(snapshot) - #print(crude_curr_var,'||',self.currzpos) - if crude_curr_var > crude_max_var: - crude_max_var = crude_curr_var - crude_loc_max_var = crude_curr_loc - crude_curr_loc = crude_curr_loc + crude_step_count - self.gotoZ(crude_curr_loc) - time.sleep(0.025) - self.gotoZ(crude_loc_max_var) - ts_stop = time.time() - print('time taken for autofocusing:'+str(ts_stop-ts_start)+' secs') - - #def focalstack(self,travel): - - - - def xMinus(self): - self.ser.write(b'D') - self.currxpos = self.currxpos - self.xFov - self.label_13.setText(self._translate("MainWindow", str(self.currxpos))) - def xPlus(self): - self.ser.write(b'A') - self.currxpos = self.currxpos + self.xFov - self.label_13.setText(self._translate("MainWindow", str(self.currxpos))) - def yMinus(self): - self.ser.write(b'S') - self.currypos = self.currypos - self.yFov - self.label_14.setText(self._translate("MainWindow", str(self.currypos))) - def yPlus(self): - self.ser.write(b'W') - self.currypos = self.currypos + self.yFov - self.label_14.setText(self._translate("MainWindow", str(self.currypos))) - def zDown(self): - self.ser.write(b'G') - self.currzpos = self.currzpos - 1 - self.label_15.setText(self._translate("MainWindow", str(self.currzpos))) - def zUp(self): - self.ser.write(b'T') - self.currzpos = self.currzpos + 1 - self.label_15.setText(self._translate("MainWindow", str(self.currzpos))) - def gotoX(self, xValue): - xValue = int(xValue) - if self.currxpos != xValue: - xValue_str = '#' + str("%($)07d" % {"$":xValue}) - self.ser.write(b'B') - self.ser.write(xValue_str.encode()) - time.sleep(abs(self.currxpos-xValue)/self.Xpulserate) - self.currxpos = int(xValue) - self.label_13.setText(self._translate("MainWindow", str(self.currxpos))) - def gotoY(self, yValue): - yValue = int(yValue) - if self.currypos != yValue: - yValue_str = '#' + str("%($)07d" % {"$":yValue}) - self.ser.write(b'N') - self.ser.write(yValue_str.encode()) - time.sleep(abs(self.currypos-yValue)/self.Ypulserate) - self.currypos = int(yValue) - self.label_14.setText(self._translate("MainWindow", str(self.currypos))) - def gotoZ(self, zValue): - zValue = int(zValue) - if self.currzpos != zValue: - zValue_str = '#' + str("%($)07d" % {"$":zValue}) - self.ser.write(b'M') - self.ser.write(zValue_str.encode()) - time.sleep(abs(self.currzpos-zValue)/self.Zpulserate) - self.currzpos = int(zValue) - self.label_15.setText(self._translate("MainWindow", str(self.currzpos))) - - def bloodsmear(self): - self.gotoX('0') - self.gotoY('0') - self.gotoZ('0') - self.gotoY(self.ymiddle);time.sleep(2); - self.autoFocus() - Zval = []; param_y0 = []; Xpos = []; - xstep = round((self.x1-self.x0)/11); - for xpos in range(self.x0,self.x1,xstep): - self.gotoX(xpos) - self.focus(2000,50) - Zval.append(self.currzpos) - Xpos.append(self.currxpos) - snap = self.data - snapshot = PIL.Image.fromarray(snap,'RGB') - snapshot.save('snap@'+str(xpos)+'.jpg') - param_y0.append(self.parameter()) - print(np.asarray(param_y0)) - index = np.argmax((param_y0)) - xbest = Xpos[index] - self.gotoX(Xpos[index]) - self.gotoZ(Zval[index]);time.sleep(2); - param_y1 = [];Xpos = []; Zval = []; - if(xbest<=xstep): - for xpos in range(xbest,xbest+xstep*2,12581): - self.gotoX(xpos) - self.focus(500,50) - Zval.append(self.currzpos) - Xpos.append(self.currxpos) - snap = self.data - snapshot = PIL.Image.fromarray(snap,'RGB') - snapshot.save('snap@'+str(xpos)+'.jpg') - param_y1.append(self.parameter()) - elif(xbest>self.x1): - for xpos in range(xbest-xstep*2,xbest,12581): - self.gotoX(xpos) - self.focus(500,50) - Zval.append(self.currzpos) - Xpos.append(self.currxpos) - snap = self.data - snapshot = PIL.Image.fromarray(snap,'RGB') - snapshot.save('snap@'+str(xpos)+'.jpg') - param_y1.append(self.parameter()) - else: - for xpos in range(xbest-xstep,xbest+xstep,12581): - self.gotoX(xpos) - self.focus(500,50) - Zval.append(self.currzpos) - Xpos.append(self.currxpos) - snap = self.data - snapshot = PIL.Image.fromarray(snap,'RGB') - snapshot.save('snap@'+str(xpos)+'.jpg') - param_y1.append(self.parameter()) - index = np.argmax(np.asarray(param_y1)) - param = np.where(np.asarray(param_y1),1,0) - self.gotoY(0) - if(np.sum(param[1:4]) == 3): - x1 = Xpos[1]; - x2 = Xpos[3]; - self.gotoX(x1);self.focus(500,50);self.ser.write(b'R') - self.gotoX(x2);self.focus(500,50);self.ser.write(b'E') - self.gotoY(self.y1);self.focus(500,50);self.ser.write(b'Y') - xA = x1; xB = x2; - yC = self.y1; yB = 0; - numofX = round((xB-xA)/self.xFov); - numofY = round((yC-yB)/self.yFov); - self.ser.write(b'Z') - while(self.ser.read() != 'S'): - print('.') - - rowcount = 0; - filecount = 0; - print('Starting Image Capture...') - while(rowcount <= numofY): - while(filecount <= numofX): - snap = PIL.Image.fromarray(self.data,'RGB') - snapshot.save('Image_'+str(rowcount)+'_'+str(filecount)+'.jpg') - filecount = filecount + 1 - filecount = 0 - rowcount = rowcount + 1 - elif(np.sum(param[0:3] > np.sum(param[2:5]))): - x1 = Xpos[0]; - x2 = Xpos[2]; - self.gotoX(x1);self.focus(500,50);self.ser.write(b'R') - self.gotoX(x2);self.focus(500,50);self.ser.write(b'E') - self.gotoY(self.y1);self.focus(500,50);self.ser.write(b'Y') - xA = x1; xB = x2; - yC = self.y1; yB = 0; - numofX = round((xB-xA)/self.xFov); - numofY = round((yC-yB)/self.yFov); - self.ser.write(b'Z') - while(self.ser.read() != 'S'): - print('.') - rowcount = 0; - filecount = 0; - print('Starting Image Capture...') - while(rowcount <= numofY): - while(filecount <= numofX): - snap = PIL.Image.fromarray(self.data,'RGB') - snapshot.save('Image_'+str(rowcount)+'_'+str(filecount)+'.jpg') - filecount = filecount + 1 - filecount = 0 - rowcount = rowcount + 1 - elif(np.sum(param[0:3] < np.sum(param[2:5]))): - x1 = Xpos[2]; - x2 = Xpos[4]; - self.gotoX(x1);self.focus(500,50);self.ser.write(b'R') - self.gotoX(x2);self.focus(500,50);self.ser.write(b'E') - self.gotoY(self.y1);self.focus(500,50);self.ser.write(b'Y') - xA = x1; xB = x2; - yC = self.y1; yB = 0; - numofX = round((xB-xA)/self.xFov); - numofY = round((yC-yB)/self.yFov); - self.ser.write(b'Z') - while(self.ser.read() != 'S'): - print('.') - - rowcount = 0; - filecount = 0; - print('Starting Image Capture...') - while(rowcount <= numofY): - while(filecount <= numofX): - snap = PIL.Image.fromarray(self.data,'RGB') - snapshot.save('Image_'+str(rowcount)+'_'+str(filecount)+'.jpg') - filecount = filecount + 1 - filecount = 0 - rowcount = rowcount + 1 - else: - print('No Best region detected!') - self.resetOrigin() - - def test(self): - #var = round(np.var(self.data)) - #self.label_8.setText(self._translate("MainWindow", str(var))) - self.focus(500,50) - - -if __name__ == '__main__' : - app = QtWidgets.QApplication(sys.argv) - x = gui() - x.main() - sys.exit(app.exec_()) diff --git a/src/python/slide_scanner_test.py b/src/python/slide_scanner_test.py deleted file mode 100644 index d7d4f29..0000000 --- a/src/python/slide_scanner_test.py +++ /dev/null @@ -1,419 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'slide_scanner_test.ui' -# -# Created by: PyQt5 UI code generator 5.6 -# -# WARNING! All changes made in this file will be lost! - -from PyQt5 import QtCore, QtGui, QtWidgets - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.setWindowModality(QtCore.Qt.WindowModal) - MainWindow.resize(1024, 768) - font = QtGui.QFont() - font.setPointSize(8) - MainWindow.setFont(font) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap("F:/IITT_Logo/0.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - MainWindow.setWindowIcon(icon) - MainWindow.setAutoFillBackground(False) - MainWindow.setStyleSheet("background-color: rgb(90, 90, 90);") - self.centralwidget = QtWidgets.QWidget(MainWindow) - self.centralwidget.setObjectName("centralwidget") - self.logoView = QtWidgets.QLabel(self.centralwidget) - self.logoView.setGeometry(QtCore.QRect(20, 20, 50, 50)) - self.logoView.setObjectName("logoView") - self.label = QtWidgets.QLabel(self.centralwidget) - self.label.setGeometry(QtCore.QRect(80, 20, 461, 51)) - font = QtGui.QFont() - font.setPointSize(24) - self.label.setFont(font) - self.label.setStyleSheet("color: rgb(255, 255, 255);") - self.label.setObjectName("label") - self.slideImageView = QtWidgets.QLabel(self.centralwidget) - self.slideImageView.setGeometry(QtCore.QRect(20, 180, 640, 512)) - self.slideImageView.setBaseSize(QtCore.QSize(640, 512)) - self.slideImageView.setStyleSheet("background-color: rgb(85, 255, 127);") - self.slideImageView.setObjectName("slideImageView") - self.label_2 = QtWidgets.QLabel(self.centralwidget) - self.label_2.setGeometry(QtCore.QRect(220, 150, 221, 31)) - font = QtGui.QFont() - font.setPointSize(18) - self.label_2.setFont(font) - self.label_2.setStyleSheet("color: rgb(255, 255, 255);") - self.label_2.setObjectName("label_2") - self.pushButton = QtWidgets.QPushButton(self.centralwidget) - self.pushButton.setEnabled(True) - self.pushButton.setGeometry(QtCore.QRect(680, 520, 141, 27)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) - self.pushButton.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton.setFont(font) - self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;\n" -"") - self.pushButton.setCheckable(False) - self.pushButton.setAutoDefault(False) - self.pushButton.setObjectName("pushButton") - self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_2.setGeometry(QtCore.QRect(870, 520, 141, 27)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth()) - self.pushButton_2.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_2.setFont(font) - self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_2.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_2.setObjectName("pushButton_2") - self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_3.setGeometry(QtCore.QRect(734, 300, 51, 23)) - self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_3.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_3.setObjectName("pushButton_3") - self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_4.setGeometry(QtCore.QRect(680, 330, 51, 23)) - self.pushButton_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_4.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_4.setCheckable(False) - self.pushButton_4.setAutoDefault(True) - self.pushButton_4.setObjectName("pushButton_4") - self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_5.setGeometry(QtCore.QRect(790, 330, 51, 23)) - self.pushButton_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_5.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_5.setObjectName("pushButton_5") - self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_6.setGeometry(QtCore.QRect(734, 360, 51, 23)) - self.pushButton_6.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_6.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_6.setObjectName("pushButton_6") - self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_7.setGeometry(QtCore.QRect(880, 300, 75, 23)) - self.pushButton_7.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_7.setAutoFillBackground(False) - self.pushButton_7.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_7.setObjectName("pushButton_7") - self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_8.setGeometry(QtCore.QRect(880, 360, 75, 23)) - self.pushButton_8.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_8.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_8.setObjectName("pushButton_8") - self.label_3 = QtWidgets.QLabel(self.centralwidget) - self.label_3.setGeometry(QtCore.QRect(680, 260, 181, 21)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth()) - self.label_3.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(12) - self.label_3.setFont(font) - self.label_3.setStyleSheet("color: rgb(255, 255, 255);") - self.label_3.setObjectName("label_3") - self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.lineEdit.setGeometry(QtCore.QRect(770, 420, 113, 20)) - self.lineEdit.setObjectName("lineEdit") - self.label_4 = QtWidgets.QLabel(self.centralwidget) - self.label_4.setGeometry(QtCore.QRect(690, 420, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_4.setFont(font) - self.label_4.setStyleSheet("color: rgb(255, 255, 255);") - self.label_4.setObjectName("label_4") - self.label_5 = QtWidgets.QLabel(self.centralwidget) - self.label_5.setGeometry(QtCore.QRect(690, 480, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_5.setFont(font) - self.label_5.setStyleSheet("color: rgb(255, 255, 255);") - self.label_5.setObjectName("label_5") - self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget) - self.lineEdit_2.setGeometry(QtCore.QRect(770, 480, 113, 20)) - self.lineEdit_2.setObjectName("lineEdit_2") - self.label_6 = QtWidgets.QLabel(self.centralwidget) - self.label_6.setGeometry(QtCore.QRect(690, 450, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_6.setFont(font) - self.label_6.setStyleSheet("color: rgb(255, 255, 255);") - self.label_6.setObjectName("label_6") - self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget) - self.lineEdit_3.setGeometry(QtCore.QRect(770, 450, 113, 20)) - self.lineEdit_3.setObjectName("lineEdit_3") - self.pushButton_9 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_9.setGeometry(QtCore.QRect(890, 420, 75, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_9.setFont(font) - self.pushButton_9.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_9.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_9.setObjectName("pushButton_9") - self.pushButton_10 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_10.setGeometry(QtCore.QRect(890, 450, 75, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_10.setFont(font) - self.pushButton_10.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_10.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_10.setObjectName("pushButton_10") - self.pushButton_11 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_11.setGeometry(QtCore.QRect(890, 480, 75, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_11.setFont(font) - self.pushButton_11.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_11.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_11.setObjectName("pushButton_11") - self.pushButton_12 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_12.setGeometry(QtCore.QRect(940, 220, 75, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_12.setFont(font) - self.pushButton_12.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_12.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_12.setObjectName("pushButton_12") - self.label_7 = QtWidgets.QLabel(self.centralwidget) - self.label_7.setGeometry(QtCore.QRect(680, 220, 131, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_7.setFont(font) - self.label_7.setStyleSheet("color: rgb(255, 255, 255);") - self.label_7.setAlignment(QtCore.Qt.AlignCenter) - self.label_7.setObjectName("label_7") - self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget) - self.lineEdit_4.setGeometry(QtCore.QRect(820, 220, 113, 20)) - self.lineEdit_4.setObjectName("lineEdit_4") - self.pushButton_13 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_13.setEnabled(True) - self.pushButton_13.setGeometry(QtCore.QRect(680, 560, 141, 27)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_13.sizePolicy().hasHeightForWidth()) - self.pushButton_13.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_13.setFont(font) - self.pushButton_13.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_13.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;\n" -"") - self.pushButton_13.setCheckable(False) - self.pushButton_13.setAutoDefault(False) - self.pushButton_13.setObjectName("pushButton_13") - self.label_8 = QtWidgets.QLabel(self.centralwidget) - self.label_8.setGeometry(QtCore.QRect(680, 180, 131, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_8.setFont(font) - self.label_8.setStyleSheet("color: rgb(255, 255, 255);") - self.label_8.setAlignment(QtCore.Qt.AlignCenter) - self.label_8.setObjectName("label_8") - self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget) - self.lineEdit_5.setGeometry(QtCore.QRect(820, 180, 113, 20)) - self.lineEdit_5.setObjectName("lineEdit_5") - self.pushButton_14 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_14.setGeometry(QtCore.QRect(940, 180, 75, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_14.setFont(font) - self.pushButton_14.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_14.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_14.setObjectName("pushButton_14") - self.label_9 = QtWidgets.QLabel(self.centralwidget) - self.label_9.setGeometry(QtCore.QRect(840, 0, 131, 16)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_9.setFont(font) - self.label_9.setStyleSheet("color: rgb(255, 255, 255);") - self.label_9.setObjectName("label_9") - self.label_10 = QtWidgets.QLabel(self.centralwidget) - self.label_10.setGeometry(QtCore.QRect(840, 30, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_10.setFont(font) - self.label_10.setStyleSheet("color: rgb(255, 255, 255);") - self.label_10.setObjectName("label_10") - self.label_11 = QtWidgets.QLabel(self.centralwidget) - self.label_11.setGeometry(QtCore.QRect(840, 60, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_11.setFont(font) - self.label_11.setStyleSheet("color: rgb(255, 255, 255);") - self.label_11.setObjectName("label_11") - self.label_12 = QtWidgets.QLabel(self.centralwidget) - self.label_12.setGeometry(QtCore.QRect(840, 90, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_12.setFont(font) - self.label_12.setStyleSheet("color: rgb(255, 255, 255);") - self.label_12.setObjectName("label_12") - self.label_13 = QtWidgets.QLabel(self.centralwidget) - self.label_13.setGeometry(QtCore.QRect(930, 30, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_13.setFont(font) - self.label_13.setStyleSheet("color: rgb(255, 255, 255);") - self.label_13.setObjectName("label_13") - self.label_14 = QtWidgets.QLabel(self.centralwidget) - self.label_14.setGeometry(QtCore.QRect(930, 60, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_14.setFont(font) - self.label_14.setStyleSheet("color: rgb(255, 255, 255);") - self.label_14.setObjectName("label_14") - self.label_15 = QtWidgets.QLabel(self.centralwidget) - self.label_15.setGeometry(QtCore.QRect(930, 90, 81, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_15.setFont(font) - self.label_15.setStyleSheet("color: rgb(255, 255, 255);") - self.label_15.setObjectName("label_15") - self.pushButton_15 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_15.setGeometry(QtCore.QRect(630, 30, 51, 23)) - self.pushButton_15.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_15.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_15.setObjectName("pushButton_15") - self.pushButton_16 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_16.setGeometry(QtCore.QRect(700, 30, 51, 23)) - self.pushButton_16.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_16.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_16.setObjectName("pushButton_16") - self.label_16 = QtWidgets.QLabel(self.centralwidget) - self.label_16.setGeometry(QtCore.QRect(630, 0, 131, 21)) - font = QtGui.QFont() - font.setPointSize(12) - self.label_16.setFont(font) - self.label_16.setStyleSheet("color: rgb(255, 255, 255);") - self.label_16.setAlignment(QtCore.Qt.AlignCenter) - self.label_16.setObjectName("label_16") - self.pushButton_17 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_17.setEnabled(True) - self.pushButton_17.setGeometry(QtCore.QRect(870, 560, 141, 27)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.pushButton_17.sizePolicy().hasHeightForWidth()) - self.pushButton_17.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(10) - self.pushButton_17.setFont(font) - self.pushButton_17.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_17.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;\n" -"") - self.pushButton_17.setCheckable(False) - self.pushButton_17.setAutoDefault(False) - self.pushButton_17.setObjectName("pushButton_17") - self.pushButton_18 = QtWidgets.QPushButton(self.centralwidget) - self.pushButton_18.setGeometry(QtCore.QRect(830, 120, 191, 23)) - font = QtGui.QFont() - font.setPointSize(12) - self.pushButton_18.setFont(font) - self.pushButton_18.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) - self.pushButton_18.setStyleSheet("color: rgb(255, 255, 255);\n" -"background-color: rgb(0, 0, 0);\n" -"border-radius:10px;") - self.pushButton_18.setObjectName("pushButton_18") - MainWindow.setCentralWidget(self.centralwidget) - self.menubar = QtWidgets.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 1024, 21)) - self.menubar.setObjectName("menubar") - MainWindow.setMenuBar(self.menubar) - self.statusbar = QtWidgets.QStatusBar(MainWindow) - self.statusbar.setObjectName("statusbar") - MainWindow.setStatusBar(self.statusbar) - - self.retranslateUi(MainWindow) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "Slide Scanner - ShanMukha Innovations Pvt Ltd")) - self.label.setText(_translate("MainWindow", "ShanMukha Innovations Pvt Ltd")) - self.label_2.setText(_translate("MainWindow", "Live Preview of Silde")) - self.pushButton.setText(_translate("MainWindow", "Take a Snapshot")) - self.pushButton_2.setText(_translate("MainWindow", "Auto-Focus")) - self.pushButton_3.setText(_translate("MainWindow", "X+")) - self.pushButton_4.setText(_translate("MainWindow", "Y-")) - self.pushButton_5.setText(_translate("MainWindow", "Y+")) - self.pushButton_6.setText(_translate("MainWindow", "X-")) - self.pushButton_7.setText(_translate("MainWindow", "Z - UP")) - self.pushButton_8.setText(_translate("MainWindow", "Z - DOWN")) - self.label_3.setText(_translate("MainWindow", "Slide Movement Controls")) - self.label_4.setText(_translate("MainWindow", "X position")) - self.label_5.setText(_translate("MainWindow", "Z position")) - self.label_6.setText(_translate("MainWindow", "Y position")) - self.pushButton_9.setText(_translate("MainWindow", "Go to X")) - self.pushButton_10.setText(_translate("MainWindow", "Go to Y")) - self.pushButton_11.setText(_translate("MainWindow", "Go to Z")) - self.pushButton_12.setText(_translate("MainWindow", "Set")) - self.label_7.setText(_translate("MainWindow", "Exposure (in ms)")) - self.pushButton_13.setText(_translate("MainWindow", "WSI Scan")) - self.label_8.setText(_translate("MainWindow", "Slide Name")) - self.pushButton_14.setText(_translate("MainWindow", "Set")) - self.label_9.setText(_translate("MainWindow", "Current Positions")) - self.label_10.setText(_translate("MainWindow", "X position")) - self.label_11.setText(_translate("MainWindow", "Y position")) - self.label_12.setText(_translate("MainWindow", "Z position")) - self.label_13.setText(_translate("MainWindow", "0")) - self.label_14.setText(_translate("MainWindow", "0")) - self.label_15.setText(_translate("MainWindow", "0")) - self.pushButton_15.setText(_translate("MainWindow", "40X")) - self.pushButton_16.setText(_translate("MainWindow", "20X")) - self.label_16.setText(_translate("MainWindow", "Magnification")) - self.pushButton_17.setText(_translate("MainWindow", "Best Region Scanning")) - self.pushButton_18.setText(_translate("MainWindow", "Set as Origin")) - - -if __name__ == "__main__": - import sys - app = QtWidgets.QApplication(sys.argv) - MainWindow = QtWidgets.QMainWindow() - ui = Ui_MainWindow() - ui.setupUi(MainWindow) - MainWindow.show() - sys.exit(app.exec_()) - diff --git a/src/python/slide_scanner_test.pyc b/src/python/slide_scanner_test.pyc deleted file mode 100644 index 60844057f70d85d8c57e887b34c07d57ae0523b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11967 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 - - MainWindow - - - Qt::WindowModal - - - - 0 - 0 - 1024 - 768 - - - - - 8 - - - - Slide Scanner - ShanMukha Innovations Pvt Ltd - - - - F:/IITT_Logo/0.jpgF:/IITT_Logo/0.jpg - - - false - - - background-color: rgb(90, 90, 90); - - - - - - 20 - 20 - 50 - 50 - - - - false - - - - - 0 - 0 - 0 - - - - - QGraphicsView::SmartViewportUpdate - - - - - - 80 - 20 - 461 - 51 - - - - - 24 - - - - color: rgb(255, 255, 255); - - - ShanMukha Innovations Pvt Ltd - - - - - - 20 - 180 - 640 - 512 - - - - - 640 - 512 - - - - background-color: rgb(85, 255, 127); - - - - - - 220 - 150 - 221 - 31 - - - - - 18 - - - - color: rgb(255, 255, 255); - - - Live Preview of Silde - - - - - true - - - - 680 - 520 - 141 - 27 - - - - - 0 - 0 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - - Take a Snapshot - - - false - - - false - - - - - - 870 - 520 - 141 - 27 - - - - - 0 - 0 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Auto-Focus - - - - - - 734 - 300 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - X+ - - - - - - 680 - 330 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Y- - - - false - - - true - - - - - - 790 - 330 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Y+ - - - - - - 734 - 360 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - X- - - - - - - 880 - 300 - 75 - 23 - - - - PointingHandCursor - - - false - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Z - UP - - - - - - 880 - 360 - 75 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Z - DOWN - - - - - - 680 - 260 - 181 - 21 - - - - - 0 - 0 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Slide Movement Controls - - - - - - 770 - 420 - 113 - 20 - - - - - - - 690 - 420 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - X position - - - - - - 690 - 480 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Z position - - - - - - 770 - 480 - 113 - 20 - - - - - - - 690 - 450 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Y position - - - - - - 770 - 450 - 113 - 20 - - - - - - - 890 - 420 - 75 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Go to X - - - - - - 890 - 450 - 75 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Go to Y - - - - - - 890 - 480 - 75 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Go to Z - - - - - - 940 - 220 - 75 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Set - - - - - - 680 - 220 - 131 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Exposure (in ms) - - - Qt::AlignCenter - - - - - - 820 - 220 - 113 - 20 - - - - - - true - - - - 680 - 560 - 141 - 27 - - - - - 0 - 0 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - - WSI Scan - - - false - - - false - - - - - - 680 - 180 - 131 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Slide Name - - - Qt::AlignCenter - - - - - - 820 - 180 - 113 - 20 - - - - - - - 940 - 180 - 75 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Set - - - - - - 840 - 0 - 131 - 16 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Current Positions - - - - - - 840 - 30 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - X position - - - - - - 840 - 60 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Y position - - - - - - 840 - 90 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Z position - - - - - - 930 - 30 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - 0 - - - - - - 930 - 60 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - 0 - - - - - - 930 - 90 - 81 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - 0 - - - - - - 630 - 30 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - 40X - - - - - - 700 - 30 - 51 - 23 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - 20X - - - - - - 630 - 0 - 131 - 21 - - - - - 12 - - - - color: rgb(255, 255, 255); - - - Magnification - - - Qt::AlignCenter - - - - - true - - - - 870 - 560 - 141 - 27 - - - - - 0 - 0 - - - - - 10 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - - Best Region Scanning - - - false - - - false - - - - - - 830 - 120 - 191 - 23 - - - - - 12 - - - - PointingHandCursor - - - color: rgb(255, 255, 255); -background-color: rgb(0, 0, 0); -border-radius:10px; - - - Set as Origin - - - - - - - 0 - 0 - 1024 - 21 - - - - - - - - diff --git a/src/python/toQImage.py b/src/python/toQImage.py deleted file mode 100644 index e0243d1..0000000 --- a/src/python/toQImage.py +++ /dev/null @@ -1,27 +0,0 @@ -from PyQt5.QtGui import QImage, qRgb -import numpy as np - -class NotImplementedException: - pass - -gray_color_table = [qRgb(i, i, i) for i in range(256)] - -def toQImage(im, copy=False): - if im is None: - return QImage() - - if im.dtype == np.uint8: - if len(im.shape) == 2: - qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_Indexed8) - qim.setColorTable(gray_color_table) - return qim.copy() if copy else qim - - elif len(im.shape) == 3: - if im.shape[2] == 3: - qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_RGB888); - return qim.copy() if copy else qim - elif im.shape[2] == 4: - qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_ARGB32); - return qim.copy() if copy else qim - -#raise NotImplementedException \ No newline at end of file diff --git a/src/python/toQImage.pyc b/src/python/toQImage.pyc deleted file mode 100644 index 043d3384043b2c0a36317d858419f709eff1475c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1307 zcmbtUOK;Oa5T0G<-3Ab8flB;lA||{+op$ zn@w6d6Kde#?Ln7xD2W+%-Pnt?>tf4nqC`zX+Ll(vltuo6#P-WWzre(w9BbE4ls?>= z@AeBkNn-cC)?d7M{n=XY5R)?E)wHlV2@X7Gr6vNPxO~xaiuh())=k9OfR+`hOD2&+NKRq5$GrusYX5(rv{h= zG4`k_03ppDo8%`RnJ|g+(8D@Im<3Ab$fP?-7J2CI#Y&%P)x$P_*SM90N%p}z4mI8* zWSDscjTT`p8j$(?BrS~njKkjD?Da~98S<8(jrA^vV}cAKo7qf!;~=`4<=c!g@@<)q zb(8e`F$oZhqAu@?Ww9aJVo5HG4rxn9mVOub7>oVl0H3cO;O- wGk3*cnHST2H$AdVSGdSKUYKipnY62%jCSk9UX>UBH9Ita7Z1du>{w6bAMb_)5&!@I