y"> dx=x2 - x1 + 1
dy=y2 - y1 + 1
pl=cnt * 1.0/dx/dy
if pl gt; 0.5 and dy gt; 6 and dy lt; 45 and dx gt;=dy * 3:
r +=[[y1, y2, x1, x2, dx/dy]]
return r
get_nei ()
r1=get_text_regions ()
ans=r1
rot_or_not=20
if len (r1) lt; rot_or_not:
nei0=nei [:]
w, h=h, w
nei=[[0] * w for i in range (h)]
for i in range (h):
for j in range (w):
nei [i] [j]=nei0 [j] [h - i - 1]
r2=get_text_regions ()
if sum ((ri [4] for ri in r2)) gt; sum ((ri [4] for ri in r1)): # bug in text11.jpg;
ans=r2
io=io.transpose (Image.ROTATE_90)
io2=io2.transpose (Image.ROTATE_90)
if len (ans) == 0:
rpt += lt; tr gt; lt; td gt; Текстоподобних ділянок не виявлено! lt;/td gt; lt;/tr gt; n
rpt += lt; tr gt; lt; td gt; lt; img src= + Fn + gt;
rpt += lt; tr style=laquo;background-color:#999999;raquo;gt;lt;tdgt;amp;nbsp;lt;/tdgt;lt;/trgt;nraquo;
return 0
else:
res_image (ans)
cnt=0
nss=0
for ai in ans:
nss +=ai [4]
if ai [4] gt;=ns:
cnt +=1
rpt += lt; tr gt; lt; td gt; Виявлено текстоподобних ділянок: + Str (len (ans)) + lt;/td gt; lt;/tr gt; n
rpt += lt; tr gt; lt; td gt; З них містять не менше% d умовних символів: % ns + str (cnt) + lt;/td gt; lt;/tr gt; n
rpt += lt; tr gt; lt; td gt; Загальне число умовних символів у всіх ділянках: + Str (nss) + lt;/td gt; lt;/tr gt; n
if (len (ans) gt;=aw and cnt gt;=bw) or nss gt;=cw:
rpt += lt; tr gt; lt; td gt; lt; font color=red gt; lt; h3 gt; *** WARNING *** lt;/h3 gt; lt;/font gt; lt ;/td gt; lt;/tr gt; n
rpt += lt; tr gt; lt; td gt; lt; img src= + Fn + gt;
rpt += lt; img src= + Prfx + fn + gt; lt;/td gt; lt;/tr gt; n
rpt += lt; tr style=laquo;background-color:#999999;raquo;gt;lt;tdgt;amp;nbsp;lt;/tdgt;lt;/trgt;nraquo;
return len (ans) ostime import time=time ()=0=0=os.listdir (pic_dir) .sort () fn in ld:
if fn [- 4:]. lower () not in fmts or fn.startswith (prfx):
continue
tf=time ()
print Обробляється файл: raquo ;, fn
res=text_detector (pic_dir, fn)
if res!=- 1:
sch1 + =1
if res!=0:
sch2 +=1
print Виявлено текстоподобних ділянок: raquo ;, res
print Час обробки (сек):% .2f % (time () - tf)
print
else:
print Помилка відкриття або читання файлу!
print += lt; tr style= background-color: # 004400; gt; lt; td gt; amp; nbsp; lt;/td gt; lt;/tr gt; n raquo ; += Laquo; lt; tr gt; lt; td gt; Текстоподобние ділянки були виявлені в% d з% d файлів % (sch2, sch1) + lt;/td gt; lt;/tr gt; n
rpt += lt; tr gt; lt; td gt; Загальний час обробки склало (сек):% .2f % (time () - tm) + lt;/td gt; lt ;/tr gt; n
rpt += lt; tr style= background-color: # 004400; gt; lt; td gt; amp; nbsp; lt;/td gt; lt;/tr gt; raquo ; += lt;/table gt; n lt;/body gt; n lt;/html gt; n =open (pic_dir + report.html raquo ;, wt ). write (rpt) .close ( )
Текстоподобние ділянки були виявлені в% d з% d файлів % (sch2, sch1)
print Загальний час обробки склало (сек):% .2f % (time () - tm)
Додаток 2
Керівництво програміста
. 1 Призначення та умови застосування програми
Програма розроблена для існуючих систем захисту від витоку конфіденційної інформації, з урахуванням всіх вимог і умов її роботи. Вона необхідна для того, щоб перекрити можливий канал витоку конфіденційн...